Hi,
I tried to build linaro kernel for pandaboard. I have tried everything what I can think of but the kernel still can't boot correctly. Any help will be appreciated. Here is what I did: 1. I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card ( http://releases.linaro.org/13.07/ubuntu/panda). This image works fine. 2. I clone the kernel source code from git:// git.linaro.org/kernel/linux-linaro-stable.git. 3. checkout the lsk 13.07 tag. 4. copy the config file from original image (i.e. /boot/config-3.10.1.0-1-linaro-omap). 5. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS="-O" LOADADDR=0x80008000 uImage The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base 6. From pandaboard, I load the built uImage via scp.
The problem I met: 1. In most cases, the kernel can't boot correctly. And the terminal keeps printing "hub 1-1:1.0: hub_port_status failed (err = -71)". 2.Sometime, the kernel can finish booting. But the terminal prints for several times the aforementioned error message after booting. Plus, I don't have any module running, 'lsmod' shows nothing.
Please help! Thank you.
-- Regards, Chao Xu
On 30 September 2013 02:54, Chao Xu caesarxuchao@gmail.com wrote:
Hi,
I tried to build linaro kernel for pandaboard. I have tried everything what I can think of but the kernel still can't boot correctly. Any help will be appreciated. Here is what I did:
- I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card
(http://releases.linaro.org/13.07/ubuntu/panda). This image works fine. 2. I clone the kernel source code from git://git.linaro.org/kernel/linux-linaro-stable.git. 3. checkout the lsk 13.07 tag. 4. copy the config file from original image (i.e. /boot/config-3.10.1.0-1-linaro-omap).
This can be trouble... if new, required config options that the kernel was tested with are somehow not on by default, you'll be missing them this way.
Better to look at omap2plus_defconfig (make ARCH=arm omap2plus_defconfig ) from the new kernel, that's what people were actually using.
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS="-O"
LOADADDR=0x80008000 uImage The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base 6. From pandaboard, I load the built uImage via scp.
The problem I met:
- In most cases, the kernel can't boot correctly. And the terminal keeps
printing "hub 1-1:1.0: hub_port_status failed (err = -71)".
The hub error doesn't sound too terrible but "can't boot correctly" might not be good.
Because of the way TI did things there are dependencies in their boot. Originally you had to worry about the right X-loader (MLO) with a compatible version of U-Boot which did the things that the particular version of the kernel you had wanted. Later they put X-loader into U-Boot tree, so those at least should be updated together, but the kernel still relies on the detail of what it expects to inherit from U-Boot in terms of PM actions (state of IP unit power) and other things. Ie, maybe update your U-Boot.
They can get rid of this kind of issue by banning all unnecessary init from the bootloaders and forcing the kernel to assert whatever states it needs, but that proved impossible to coordinate / agree, although they made big strides with the kernel owning clocks properly at least.
2.Sometime, the kernel can finish booting. But the terminal prints for several times the aforementioned error message after booting. Plus, I don't have any module running, 'lsmod' shows nothing.
Well for the modules you need to copy them over to your rootfs. I usually do something like this
make ARCH=arm INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=`pwd`/staging
then cp -rp or scp or rsync or whatever ./staging/* to / on the remote rootfs (it has /lib/modules/... in there).
-Andy
Please help! Thank you.
-- Regards, Chao Xu
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Thank you Andy! I tried with omap2plus_defconfig and the kernel seemed to be working, no more "hub 1-1:1.0: hub_port_status failed (err = -71)" so far. But I still don't understand why the config file copied from the /boot directory of a 13.07 linaro-ubuntu-pandaboard image doesn't work. I thought this was what linaro group used to compile the kernel. Could you explain a little more?
Another problem is the ethernet is still not working. Here is what I tried to debug this problem: 1. 'ifup eth0' replies 'Error getting hardware address for "eth0": No such device'. 2. 'dmesg| grep eth' shows only this: usbcore: registered new interface driver cdc_ether. But on the stock linaro image, it shows a lot more: [ 2.447448] usbcore: registered new interface driver cdc_ether [ 4.287170] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-ehci-omap.0-1.1, smsc95xx U SB 2.0 Ethernet, 0e:60:7e:2a:4e:01 [ 21.024139] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 22.556945] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 22.557800] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 [ 32.933746] eth0: no IPv6 3. Since smsc95xx is the eth driver, so I tried dmesg|grep 'smsc95xx', it shows: [ 1.830596] usbcore: registered new interface driver smsc95xx 4. I suspect it's still a usb problem, because 'lsusb' gives me 'unable to initialize libusb: -99".
Could someone give me some suggestions?
Thanks again. On Sun, Sep 29, 2013 at 7:21 PM, Andy Green andy.green@linaro.org wrote:
On 30 September 2013 02:54, Chao Xu caesarxuchao@gmail.com wrote:
Hi,
I tried to build linaro kernel for pandaboard. I have tried everything
what
I can think of but the kernel still can't boot correctly. Any help will
be
appreciated. Here is what I did:
- I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card
(http://releases.linaro.org/13.07/ubuntu/panda). This image works fine. 2. I clone the kernel source code from git://git.linaro.org/kernel/linux-linaro-stable.git. 3. checkout the lsk 13.07 tag. 4. copy the config file from original image (i.e. /boot/config-3.10.1.0-1-linaro-omap).
This can be trouble... if new, required config options that the kernel was tested with are somehow not on by default, you'll be missing them this way.
Better to look at omap2plus_defconfig (make ARCH=arm omap2plus_defconfig ) from the new kernel, that's what people were actually using.
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS="-O"
LOADADDR=0x80008000 uImage The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base 6. From pandaboard, I load the built uImage via scp.
The problem I met:
- In most cases, the kernel can't boot correctly. And the terminal
keeps
printing "hub 1-1:1.0: hub_port_status failed (err = -71)".
The hub error doesn't sound too terrible but "can't boot correctly" might not be good.
Because of the way TI did things there are dependencies in their boot. Originally you had to worry about the right X-loader (MLO) with a compatible version of U-Boot which did the things that the particular version of the kernel you had wanted. Later they put X-loader into U-Boot tree, so those at least should be updated together, but the kernel still relies on the detail of what it expects to inherit from U-Boot in terms of PM actions (state of IP unit power) and other things. Ie, maybe update your U-Boot.
They can get rid of this kind of issue by banning all unnecessary init from the bootloaders and forcing the kernel to assert whatever states it needs, but that proved impossible to coordinate / agree, although they made big strides with the kernel owning clocks properly at least.
2.Sometime, the kernel can finish booting. But the terminal prints for several times the aforementioned error message after booting. Plus, I
don't
have any module running, 'lsmod' shows nothing.
Well for the modules you need to copy them over to your rootfs. I usually do something like this
make ARCH=arm INSTALL_MOD_STRIP=1 modules_install
INSTALL_MOD_PATH=`pwd`/staging
then cp -rp or scp or rsync or whatever ./staging/* to / on the remote rootfs (it has /lib/modules/... in there).
-Andy
Please help! Thank you.
-- Regards, Chao Xu
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
-- Regards, Chao Xu
On 30 September 2013 09:52, Chao Xu caesarxuchao@gmail.com wrote:
Thank you Andy! I tried with omap2plus_defconfig and the kernel seemed to be working, no more "hub 1-1:1.0: hub_port_status failed (err = -71)" so far.
FWIW I don't think they are fatal errors for your boot anyway. If it was failing to boot it was probably something else.
But I still don't understand why the config file copied from the /boot directory of a 13.07 linaro-ubuntu-pandaboard image doesn't work. I thought this was what linaro group used to compile the kernel. Could you explain a little more?
Maybe the root cause is elsewhere (U-Boot version?) and omap2plus_defconfig simply disables the things that are broken by the root cause on your setup. So it only looks better.
Another problem is the ethernet is still not working. Here is what I tried to debug this problem:
- 'ifup eth0' replies 'Error getting hardware address for "eth0": No such
device'. 2. 'dmesg| grep eth' shows only this: usbcore: registered new interface driver cdc_ether. But on the stock linaro image, it shows a lot more:
Seems no "eth0", you can check with ifconfig -a
[ 2.447448] usbcore: registered new interface driver cdc_ether [ 4.287170] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-ehci-omap.0-1.1, smsc95xx U SB 2.0 Ethernet, 0e:60:7e:2a:4e:01 [ 21.024139] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 22.556945] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 22.557800] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 [ 32.933746] eth0: no IPv6 3. Since smsc95xx is the eth driver, so I tried dmesg|grep 'smsc95xx', it shows: [ 1.830596] usbcore: registered new interface driver smsc95xx
Yeah the driver is in but no usb device was probed.
- I suspect it's still a usb problem, because 'lsusb' gives me 'unable to
initialize libusb: -99".
Could someone give me some suggestions?
You're using the U-Boot that worked on the Linaro image that works? Linaro toolchain to build the kernel?
Same U-Boot environment pieces, whatever they are nowadays, boot.scr, ini, txt etc
Same MLO file from the working image?
You copied your modules over as described?
What's your power supply like?
-Andy
Thanks again. On Sun, Sep 29, 2013 at 7:21 PM, Andy Green andy.green@linaro.org wrote:
On 30 September 2013 02:54, Chao Xu caesarxuchao@gmail.com wrote:
Hi,
I tried to build linaro kernel for pandaboard. I have tried everything what I can think of but the kernel still can't boot correctly. Any help will be appreciated. Here is what I did:
- I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card
(http://releases.linaro.org/13.07/ubuntu/panda). This image works fine. 2. I clone the kernel source code from git://git.linaro.org/kernel/linux-linaro-stable.git. 3. checkout the lsk 13.07 tag. 4. copy the config file from original image (i.e. /boot/config-3.10.1.0-1-linaro-omap).
This can be trouble... if new, required config options that the kernel was tested with are somehow not on by default, you'll be missing them this way.
Better to look at omap2plus_defconfig (make ARCH=arm omap2plus_defconfig ) from the new kernel, that's what people were actually using.
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS="-O"
LOADADDR=0x80008000 uImage The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base 6. From pandaboard, I load the built uImage via scp.
The problem I met:
- In most cases, the kernel can't boot correctly. And the terminal
keeps printing "hub 1-1:1.0: hub_port_status failed (err = -71)".
The hub error doesn't sound too terrible but "can't boot correctly" might not be good.
Because of the way TI did things there are dependencies in their boot. Originally you had to worry about the right X-loader (MLO) with a compatible version of U-Boot which did the things that the particular version of the kernel you had wanted. Later they put X-loader into U-Boot tree, so those at least should be updated together, but the kernel still relies on the detail of what it expects to inherit from U-Boot in terms of PM actions (state of IP unit power) and other things. Ie, maybe update your U-Boot.
They can get rid of this kind of issue by banning all unnecessary init from the bootloaders and forcing the kernel to assert whatever states it needs, but that proved impossible to coordinate / agree, although they made big strides with the kernel owning clocks properly at least.
2.Sometime, the kernel can finish booting. But the terminal prints for several times the aforementioned error message after booting. Plus, I don't have any module running, 'lsmod' shows nothing.
Well for the modules you need to copy them over to your rootfs. I usually do something like this
make ARCH=arm INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=`pwd`/staging
then cp -rp or scp or rsync or whatever ./staging/* to / on the remote rootfs (it has /lib/modules/... in there).
-Andy
Please help! Thank you.
-- Regards, Chao Xu
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
-- Regards, Chao Xu