LTSI Kernel Porting Information: Debian Wheezy
Contents
LTSI Kernel Porting Information: Debian GNU/Linux 7.0 (Wheezy), Jessie(Debian next version's codename) and Sid
The following shows the information of the result of porting LTSI Kernel to Debian GNU/Linux 7.0 (Wheezy), Jessie (Debian next version's codename) and sid . Anyone is more than well come to add information here in the following format
What had been done:
(Please describe your changes for LTSI to work for the target distribution)
Updated linux kernel
I supported CuBox to LTSI 3.4.46. This kernel does not support CuBox, I needed to backports patches from latest kernel. I supported SATA, USB, Ether, serial and SPI. SDHI does not support. If we boot using this kenrel, we need to use Ether or USB.
Checked arm architecture in Debian
Debian is preparing armel and armhf as the 32bit arm architecture. I checked operation in both.
Changes:
(Please describe summary of your changes and suggestions for others)
Change etc/inittab
I added a line to etc/inittab following:
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
Usually, serial console is not enabled Debian. First, because we need to login CuBox from serial console, you need to add this line.
Add etc/fstab
When Debian does not use an installer, etc/fstab is usually empty. Therefore, a user needs to change. I added the device used as rootfs after boot to etc/fstab following:
# <file system> <mount> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda1 / ext2 defaults,errors=remount-ro 0 1
Patches:
(link to your patches for LTSI if you have any)
Linux kernel
I am managing patches in https://github.com/iwamatsu/linux/tree/3.4.46-ltsi-cubox
Most patches were cherry-picked from linux upstream kernel.
Notes:
How to boot from USB (This is really my note...):
CuBox>> usb start ; ext2load usb 0 2000000 uImage ; bootm 2000000
Boot log (Wheezy)
CuBox>> usb start (Re)start USB... USB: Register 10011 NbrPorts 1 USB EHCI 1.00 scanning bus for devices... 2 USB Device(s) found Waiting for storage device(s) to settle before scanning... scanning bus for storage devices... 1 Storage Device(s) found CuBox>> ext2load usb 0 2000000 uImage Loading file "uImage" from usb device 0:1 (usbda1) .... .............................................................................................................................................................................................. 2339168 bytes read CuBox>> bootm 2000000 ## Booting kernel from Legacy Image at 02000000 ... Image Name: Linux-3.4.46-ltsi-00806-g5181caf Created: 2013-08-30 8:39:14 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2339104 Bytes = 2.2 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Booting Linux on physical CPU 0 Linux version 3.4.46-ltsi-00806-g5181caf (iwamatsu@chimagu) (gcc version 4.7.2 (GCC) ) #72 Fri Aug 30 17:38:55 JST 2013 CPU: ARMv7 Processor [560f5815] revision 5 (ARMv7), cr=10c53c7d CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache Machine: Marvell DB-MV88AP510-BP Development Board Ignoring unrecognised tag 0x41000403 Ignoring unrecognised tag 0x41000404 Truncating RAM at 00000000-3fffffff to -2f7fffff (vmalloc region overlap). Ignoring RAM at 40000000-7fffffff (vmalloc region overlap). Memory policy: ECC disabled, Data cache writeback Built 1 zonelists in Zone order, mobility grouping on. Total pages: 193040 Kernel command line: console=ttyS0,115200n8 root=/dev/sda1 rootdelay=20 PID hash table entries: 4096 (order: 2, 16384 bytes) Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 760MB = 760MB total Memory: 766760k/766760k available, 11480k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xf0000000 - 0xff000000 ( 240 MB) lowmem : 0xc0000000 - 0xef800000 ( 760 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc04084f0 (4098 kB) .init : 0xc0409000 - 0xc042b000 ( 136 kB) .data : 0xc042c000 - 0xc0456320 ( 169 kB) .bss : 0xc0456344 - 0xc0474d80 ( 123 kB) NR_IRQS:135 gpiochip_add: registered GPIOs 0 to 31 on device: orion_gpio0 gpiochip_add: registered GPIOs 32 to 63 on device: orion_gpio1 sched_clock: 32 bits at 166MHz, resolution 5ns, wraps every 25769ms Console: colour dummy device 80x30 Calibrating delay loop... 789.70 BogoMIPS (lpj=3948544) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok Setting up static identity map for 0x307290 - 0x3072e8 devtmpfs: initialized NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Dove 88AP510 SoC, TCLK = 167 MHz. Tauros2: Enabling L2 cache. Tauros2: L2 cache support initialised in ARMv7 mode. Dove PCIe port 0: link down, ignoring Dove PCIe port 1: link down, ignoring bio: create slab <bio-0> at 0 vgaarb: loaded SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Switching to clocksource orion_clocksource NET: Registered protocol family 2 IP route cache hash table entries: 32768 (order: 5, 131072 bytes) TCP established hash table entries: 131072 (order: 8, 1048576 bytes) TCP bind hash table entries: 65536 (order: 6, 262144 bytes) TCP: Hash tables configured (established 131072 bind 65536) TCP: reno registered UDP hash table entries: 512 (order: 1, 8192 bytes) UDP-Lite hash table entries: 512 (order: 1, 8192 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. NFS: Registering the id_resolver key type nfs4filelayout_init: NFSv4 File Layout Driver Registering... jffs2: version 2.2. (NAND) �� 2001-2006 Red Hat, Inc. msgmni has been set to 1497 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver mv_xor mv_xor.0: Marvell XOR: ( xor cpy ) mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy ) mv_xor mv_xor.2: Marvell XOR: ( xor cpy ) mv_xor mv_xor.3: Marvell XOR: ( xor fill cpy ) Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 7) is a 16550A console [ttyS0] enabled serial8250.1: ttyS1 at MMIO 0xf1012100 (irq = 8) is a 16550A brd: module loaded loop: module loaded sata_mv sata_mv.0: cannot get optional clkdev sata_mv sata_mv.0: slots 32 ports 1 scsi0 : sata_mv ata1: SATA max UDMA/133 irq 62 orion_spi orion_spi.0: master is unqueued, this is deprecated m25p80 spi0.0: found w25q32, expected m25p64 m25p80 spi0.0: w25q32 (4096 Kbytes) orion_spi orion_spi.1: master is unqueued, this is deprecated mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 mv643xx_eth smi: probed mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address 00:50:43:2e:2e:01 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver orion-ehci orion-ehci.0: Marvell Orion EHCI orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1 orion-ehci orion-ehci.0: irq 24, io mem 0xf1050000 orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected orion-ehci orion-ehci.1: Marvell Orion EHCI orion-ehci orion-ehci.1: new USB bus registered, assigned bus number 2 orion-ehci orion-ehci.1: irq 25, io mem 0xf1051000 orion-ehci orion-ehci.1: USB 2.0 started, EHCI 1.00 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. rtc-mv rtc-mv: rtc core: registered rtc-mv as rtc0 i2c /dev entries driver usbcore: registered new interface driver usbhid usbhid: USB HID core driver TCP: cubic registered NET: Registered protocol family 17 Registering the dns_resolver key type VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 5 rtc-mv rtc-mv: setting system clock to 2013-09-02 07:49:38 UTC (1378108178) Waiting 20sec before mounting root device... ata1: SATA link down (SStatus 0 SControl F300) usb 1-1: new high-speed USB device number 2 using orion-ehci scsi1 : usb-storage 1-1:1.0 scsi 1:0:0:0: Direct-Access I-O DATA USB Flash Disk A0A PQ: 0 ANSI: 2 sd 1:0:0:0: [sda] 3948544 512-byte logical blocks: (2.02 GB/1.88 GiB) sd 1:0:0:0: [sda] Write Protect is off sd 1:0:0:0: [sda] Asking for cache data failed sd 1:0:0:0: [sda] Assuming drive cache: write through sd 1:0:0:0: [sda] Asking for cache data failed sd 1:0:0:0: [sda] Assuming drive cache: write through sda: sda1 sd 1:0:0:0: [sda] Asking for cache data failed sd 1:0:0:0: [sda] Assuming drive cache: write through sd 1:0:0:0: [sda] Attached SCSI removable disk kjournald starting. Commit interval 5 seconds EXT3-fs (sda1): using internal journal EXT3-fs (sda1): recovery complete EXT3-fs (sda1): mounted filesystem with ordered data mode VFS: Mounted root (ext3 filesystem) on device 8:1. devtmpfs: mounted Freeing init memory: 136K INIT: version 2.88 booting [info] Using makefile-style concurrent boot in runlevel S. [....] Starting the hotplug events dispatcher: udevdudevd[539]: starting version 175 . ok [....] Synthesizing the initial hotplug events...done. [....] Waiting for /dev to be fully populated...done. [....] Activating swap...done. [....] Checking root file system...fsck from util-linux 2.20.1 /dev/sda1: clean, 9581/123392 files, 63370/493312 blocks done. EXT3-fs (sda1): using internal journal [....] Cleaning up temporary files... /tmp. ok [....] Activating lvm and md swap...done. [....] Checking file systems...fsck from util-linux 2.20.1 done. [....] Mounting local filesystems...done. [....] Activating swapfile swap...done. [....] Cleaning up temporary files.... ok [....] Setting kernel variables ...done. [....] Configuring network interfaces...done. [....] Cleaning up temporary files.... ok INIT: Entering runlevel: 2 [info] Using makefile-style concurrent boot in runlevel 2. [....] Starting enhanced syslogd: rsyslogd. ok [....] Starting periodic command scheduler: cron. ok Debian GNU/Linux 7.0 debian ttyS0 debian login: root Password: Linux debian 3.4.46-ltsi-00806-g5181caf #72 Fri Aug 30 17:38:55 JST 2013 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@debian:~#