[Letux-kernel] Raspi3B+ support

H. Nikolaus Schaller hns at goldelico.com
Fri Jan 4 14:45:47 CET 2019

with help and suggestions from Mark, I finally managed
to get our Letux kernel compile and boot on the Raspi3B+.

There were small config issues especially with the UART
and that was the reason why I did not see anything on
the console during my first attempts last year.

Finding out the configs was difficult... As a first step
I compiled the source tree v4.20.y I did find on the
github repo using their config. This did boot with console!

With that I was able to compare the CONFIG options with
our letux_defconfig. After fighting with Kconfig
(which treats lines with "# CONFIG_xxx is not set" not
as comments but a config change), I finally had boiled it
down to ca. 30 modified settings.

After applying them on top of letux_defconfig I got the
v4.20.y tree boot.

And interestingly our letux-4.20 tree as well:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.20.0-letux-raspi+ (hns at iMac.fritz.box) (gcc version 4.9.2 (GCC)) #3154 SMP PREEMPT Fri Jan 4 12:55:54 CET 2019
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 3 Model B Plus Rev 1.3
[    0.000000] printk: debug: ignoring loglevel setting.
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Failed to reserve 256 MiB
[    0.000000] On node 0 totalpages: 242688
[    0.000000]   Normal zone: 1536 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:63
[    0.000000]   HighMem zone: 46080 pages, LIFO batch:15
[    0.000000] random: get_random_bytes called from start_kernel+0x80/0x470 with crng_init=0
[    0.000000] percpu: Embedded 17 pages/cpu @(ptrval) s40320 r8192 d21120 u69632
[    0.000000] pcpu-alloc: s40320 r8192 d21120 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 241152
[    0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 elevator=deadline cma=256M at 512M fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait log_buf_len=8M ignore_loglevel earlyprintk
[    0.000000] printk: log_buf_len: 8388608 bytes
[    0.000000] printk: early log buf free: 63716(97%)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 941468K/970752K available (7115K kernel code, 677K rwdata, 1920K rodata, 1024K init, 354K bss, 29284K reserved, 0K cma-reserved, 184320K highmem)


letux login: root
Last login: Thu Jan  1 00:00:25 UTC 1970 on console
Linux letux 4.20.0-letux-raspi+ #3154 SMP PREEMPT Fri Jan 4 12:55:54 CET 2019 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 at letux:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:512 errors:0 dropped:0 overruns:0 frame:0
          TX packets:512 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:41472 (40.5 KiB)  TX bytes:41472 (40.5 KiB)

root at letux:~# lsusb
unable to initialize libusb: -99
root at letux:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root at letux:~# ls -l /dev/fb*
ls: cannot access /dev/fb*: No such file or directory
root at letux:~# 

Not working are WLAN, Bluetooth, USB, Ethernet and
most likely HDMI (I have not found a /dev/fb).
Sound seems to exist but I have not tested anything.

Based on that version I have updated the letux_defconfig that
will be included in letux-4.21-rc1 (expected for Monday).

So please prepare that we may see unexpected side-effects...


PS: it will become interesting to combine letux-phosh
with the letux-kernel for raspi...

More information about the Letux-kernel mailing list