brew install bash-completion
Monday 5 December 2016
Bash Completion on OS X
Working with the terminal in OS X for the first time I realised I was missing tab completion for common terminal tasks. After a bit of searching I found the bash-completion package is available to install from brew. Just use:
Friday 9 September 2016
No SIM card - Emergency calls only
I got a Motorola Google Nexus 6 phone which takes a nano SIM card. I cut down my existing SIM as far as I could and it worked in the Nexus but the SIM tray wouldn't shut properly so I ordered a brand new nano SIM.
When the nano SIM came I could not get it to work at all. The phone would not detect the presence of the SIM card. I tried wedging paper under it, cleaning contacts, factory reset, software downgrade and nothing would work.
This same nano SIM worked perfectly in another handset, I tried another working nano SIM in the Nexus and that wouldn't work either.
I then tried pushing the SIM tray as hard as I could and surprisingly the SIM was registered by the handset and it indicated full signal.
Short Answer:
Push the SIM tray in as hard as you can!!!
This appears to be some kind of mechanical defect with the Nexus 6 as recorded in many threads.
Here: http://forum.xda-developers.com/nexus-6/help/sim-card-emergency-calls-error-verizon-t2996291
Here: https://productforums.google.com/forum/#!topic/nexus/wuIXWFdaHZQ
And Here: https://productforums.google.com/forum/#!topic/nexus/-vSXPn2obNk
When the nano SIM came I could not get it to work at all. The phone would not detect the presence of the SIM card. I tried wedging paper under it, cleaning contacts, factory reset, software downgrade and nothing would work.
This same nano SIM worked perfectly in another handset, I tried another working nano SIM in the Nexus and that wouldn't work either.
I then tried pushing the SIM tray as hard as I could and surprisingly the SIM was registered by the handset and it indicated full signal.
Short Answer:
Push the SIM tray in as hard as you can!!!
This appears to be some kind of mechanical defect with the Nexus 6 as recorded in many threads.
Here: http://forum.xda-developers.com/nexus-6/help/sim-card-emergency-calls-error-verizon-t2996291
Here: https://productforums.google.com/forum/#!topic/nexus/wuIXWFdaHZQ
And Here: https://productforums.google.com/forum/#!topic/nexus/-vSXPn2obNk
Monday 15 August 2016
Best description so far of Google Cast API
Thinking of developing a Google Cast Receiver outside of the official Android SDK?
Take a look at this documentation
Take a look at this documentation
Labels:
api,
chromecast,
doc,
google cast,
receiver
Location:
Stockport, UK
Tuesday 8 March 2016
U-boot fails to load env from I2C eeprom if SPI is enabled
U-boot failed to load environment from an I2C eeprom with the following errors:
U-Boot SPL 2015.10-00002-gfedeb03-dirty (Mar 08 2016 - 13:05:30)
reading args
spl_load_image_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img
U-Boot 2015.10-00002-gfedeb03-dirty (Mar 08 2016 - 13:05:30 +0000)
Watchdog enabled
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
*** Error - default environment is too large
Net: <ethaddr> not set. Validating first E-fuse MAC
Phy 0 not found
cpsw
Error: cpsw address not set.
, usb_ether
Error: usb_ether address not set.
env_buf [32 bytes] too small for value of "bootcmd"
Hit any key to stop autoboot: 0
U-Boot SPL 2015.10-00002-gfedeb03-dirty (Mar 08 2016 - 13:05:30)
reading args
spl_load_image_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img
U-Boot 2015.10-00002-gfedeb03-dirty (Mar 08 2016 - 13:05:30 +0000)
Watchdog enabled
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
i2c_read: error waiting for addr ACK (status=0x116)
*** Error - default environment is too large
Net: <ethaddr> not set. Validating first E-fuse MAC
Phy 0 not found
cpsw
Error: cpsw address not set.
, usb_ether
Error: usb_ether address not set.
env_buf [32 bytes] too small for value of "bootcmd"
Hit any key to stop autoboot: 0
On investigation, adding a debug output I found that the wrong I2C address was being read:
I2C read: addr:0 len:4 alen:1 chip:0x00
My configuration defines the env on an eeprom at 0x50:
/* EEPROM (24C16) */
#define CONFIG_CMD_EEPROM
#define CONFIG_ENV_IS_IN_EEPROM
#define CONFIG_I2C_ENV_EEPROM_BUS 1
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
#define CONFIG_SYS_I2C_MULTI_EEPROMS
#define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 /* 8 Byte write page */
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
#define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW 0x07
Looking at the section of code at include/common.h:483:
#if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR)
# define CONFIG_SYS_DEF_EEPROM_ADDR 0
#else
#if !defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
# define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR
#endif
#endif /* CONFIG_SPI || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) */
The logic is a bit confusing but appears to set CONFIG_SYS_DEF_EEPROM_ADDR to 0 if CONFIG_SPI is defined but I don't have CONFIG_SPI defined!
On closer inspection, an included default config for the SoC I was using had defined this so simply adding:
#undef CONFIG_SPI
Resolved the issue :-)
Subscribe to:
Posts (Atom)