<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Josua,<div class=""><br class=""><blockquote type="cite" class="">Am 19.07.2018 um 16:47 schrieb Josua Mayer <<a href="mailto:josua.mayer@jm0.eu" class="">josua.mayer@jm0.eu</a>>:<br class=""><br class="">Hi Nikolaus,<br class=""><br class="">Let me add another issue:<br class="">The zImage is bigger than 4MB. In order to boot from nand flash on the<br class="">gta04, zImage with appended DTB and u-boot header has to fit within 4MB,<br class="">sadly :(<br class=""></blockquote><div class=""><br class=""></div>Hmm.</div><div class=""><br class=""></div><div class="">Who is imposing this limitation? The latest GTA04 NAND partition scheme has</div><div class="">reserved 6 (or 8?) MB for the kernel for quite a while because it did grow and</div><div class="">grow over the years. So there should be enough room.</div><div class=""><br class=""><blockquote type="cite" class="">So I experimented with the first most obvious setting, the kernel<br class="">compression algorithm, with letux_defconfig on 4.17.3:<br class="">XZ:   -rwxr-xr-x 1 1000 100 4205240 18. Jul 21:47 arch/arm/boot/zImage<br class="">LZMA: -rwxr-xr-x 1 1000 100 4468392 18. Jul 21:45 arch/arm/boot/zImage<br class="">GZIP: -rwxr-xr-x 1 1000 100 6055896 18. Jul 21:54 arch/arm/boot/zImage<br class="">LZO:  -rwxr-xr-x 1 1000 100 6684312 18. Jul 21:52 arch/arm/boot/zImage<br class="">LZ4:  -rwxr-xr-x 1 1000 100 7187536 18. Jul 21:51 arch/arm/boot/zImage<br class=""><br class="">Currently the letux_defconfig uses the default, gzip. As you can see,<br class="">the gzip size is roughly 6MB.<br class=""></blockquote><div class=""><br class=""></div>My uImage (4.17.3) is roughly 4.5 MB:</div><div class=""><br class=""></div><div class=""><a href="http://download.goldelico.com/letux-kernel/letux-4.17.3/" class="">http://download.goldelico.com/letux-kernel/letux-4.17.3/</a></div><div class=""><br class=""></div><div class="">How do you come to such big kernel images by using letux_defconfig?</div><div class=""><br class=""><blockquote type="cite" class="">So I think we should pick a different algorithm. From this list xz and<br class="">lzma are the best,<br class="">and xz is actually exceptionally close to the goal!<br class="">So I think xz should become the default.<br class=""></blockquote><div class=""><br class=""></div>That would be a special solution for GTA04 NAND... All other boards</div><div class="">supported by Letux OS have no problem with bigger (and gz) kernels. So</div><div class="">we should think twice if we want to change that for everyone.</div><div class=""><br class=""><blockquote type="cite" class=""><br class="">Can we do something else to get this kernel smaller? I do not have an<br class="">overview of what kernel options affect size and why they may be useful<br class="">or not.<br class=""></blockquote><div class=""><br class=""></div>Well, all options with "=y" basically affect kernel binary size. If you want</div><div class="">to build a GTA04 only kernel, you could remove support for OMAP4&5 and i.MX6</div><div class="">and AM335x. But that leads to specialized kernel binaries (and configs) for</div><div class="">every device model. Something we wanted to avoid by having an multiarch kernel.</div><div class=""><br class=""><blockquote type="cite" class=""><br class="">A debian buster rootfs fits nicely into the 220MB rootfs partition, and<br class="">the localepurge package really helps a lot!<br class=""></blockquote><div class=""><br class=""></div>Yes, that should nicely fit but is probably without X11 and lxde or xfce?</div><div class=""><br class=""></div><div class="">And yes, localepurge is our friend here :) If I remember correctly the</div><div class="">prebuilt images provided on downloads@goldelico have it installed.</div><div class=""><br class=""><blockquote type="cite" class="">However half of the used space is apt index (~110MB uncompressed).<br class=""></blockquote><div class=""><br class=""></div>Yes, it is growing and growing. Lenny or Squeeze were really small :)</div><div class=""><br class=""><blockquote type="cite" class="">I have a feeling if we ever install debian in nand again, maybe apt<br class="">index should be in a compressed tmpfs and not persistent.<br class=""></blockquote><div class=""><br class=""></div>Good idea!</div><div class=""><br class=""></div><div class="">What I do in the flash-nand script is to apt-clean and remove some</div><div class="">of the cache files... Unfortunately, a jessie+LXDE is ca. 10% too big...</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><br class="">br<br class="">Josua Mayer<br class=""><br class=""><br class="">Am 19.07.2018 um 07:32 schrieb H. Nikolaus Schaller:<br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi Josua,<br class="">sorry for the delayed answer.<br class=""><br class=""><blockquote type="cite" class="">Am 16.07.2018 um 20:19 schrieb Josua Mayer <<a href="mailto:josua.mayer@jm0.eu" class="">josua.mayer@jm0.eu</a>>:<br class=""><br class="">Hi Nikolaus,<br class=""><br class="">I finally got around to testing that 4.17.3+ build of yours and these<br class="">are the things I noticed:<br class=""></blockquote>fine!<br class=""><br class=""><blockquote type="cite" class="">modules.tgz has many files outside of /lib/modules<br class=""></blockquote>yes. We have some /etc and /root files in the kernel tree<br class="">which regularily need an update to exactly match the specific<br class="">kernel variant. Therefore the easiest thing was to pack them<br class="">with the modules which have the same constraint.<br class=""><br class="">But we could think about splitting into modules.tgz and root.tgz<br class=""></blockquote>Yes that would be nice. I really dislike that it overrides the nodm<br class="">configuration file after I had explicitly disabled nodm before.<br class="">Also afaik dpkg complains about a file already installed by a system<br class="">package (can't remember which) so that could use cleaning.<br class=""></blockquote><div class=""><br class=""></div>I have separated this now into three packages:</div><div class=""><br class=""></div><div class=""><a href="http://download.goldelico.com/letux-kernel/letux-4.18-rc5/binary-armhf/" class="">http://download.goldelico.com/letux-kernel/letux-4.18-rc5/binary-armhf/</a></div><div class=""><br class=""></div><div class="">linux-kernel<span class="Apple-tab-span" style="white-space:pre">       </span>(uImage + dtbs + kernel modules)</div><div class="">linux-headers<span class="Apple-tab-span" style="white-space:pre">     </span>(header files)</div><div class="">linux-rootfs<span class="Apple-tab-span" style="white-space:pre">        </span>(/etc /root ...)</div><div class=""><br class=""></div><div class="">So if you don't install linux-rootfs.deb there is no conflicting config for nodm</div><div class="">and others.</div><div class=""><br class=""></div><div class="">Maybe I should split it up into even more small packages (/root, networking,</div><div class="">udev rules, fstab, tty, ssh, X11, systemd, network/interfaces, ...) and</div><div class="">some meta-package.</div><div class=""><br class=""></div><div class="">But for a first step this should be good enough and can be generated</div><div class="">100% automatically.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><blockquote type="cite" class="">linux-image_*.deb has many files outside of /lib/modules and /boot<br class=""></blockquote>it is the same.<br class=""><br class=""><blockquote type="cite" class="">linux-image_*.deb does not contain the uImage<br class=""></blockquote>Oops. But that should be included... I have to check the build scripts.<br class=""></blockquote></blockquote><div class=""><br class=""></div>I have found the bug and with 4.18-rc5 it is now included.</div><div class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><blockquote type="cite" class="">With the previous stable 4.16 as fetched by makesd I had occasional<br class="">unexpected shutdown after leaving the phone lying around idle while<br class="">attached to the charger. And every time the battery was empty afterwards :(<br class="">I haven't seen this on 4.17 yet after several hours so I guess that is a<br class="">good sign!<br class=""><br class="">WiFi sometimes fails to authenticate (open network) and requires one<br class="">ifdown-ifup cycle:<br class="">[  411.405700] wlan0: authenticate with <censored><br class="">[  411.418884] wlan0: send auth to <censored> (try 1/3)<br class="">[  411.555633] wlan0: send auth to <censored> (try 2/3)<br class="">[  411.705718] wlan0: send auth to <censored> (try 3/3)<br class="">[  411.815734] wlan0: authentication with <censored> timed out<br class="">then on next ifup after ifdown:<br class="">[  488.789276] wlan0: authenticate with <censored><br class="">[  488.801879] wlan0: send auth to <censored> (try 1/3)<br class="">[  488.830963] wlan0: authenticated<br class="">[  488.835693] wlan0: associate with <censored> (try 1/3)<br class="">[  488.846221] wlan0: RX AssocResp from <censored> (capab=0x421 status=0<br class="">aid=1)<br class="">[  488.872192] wlcore: Association completed.<br class="">[  488.881774] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready<br class="">[  488.889678] wlan0: associated<br class="">I also have seen this with 4.16 I believe.<br class=""></blockquote>That is something I have no idea about...<br class=""><br class=""><blockquote type="cite" class="">I don't understand the output of the charger script:<br class="">Which battery is which, and why do they all have different charge levels?<br class=""><br class="">TWL4030 Main Battery<br class=""></blockquote>this is the first entry which reads the ADCs for voltage and current<br class="">and has a built-in formula in the script<br class=""><br class=""><blockquote type="cite" class="">volt: 3777mV<br class="">current: 918mA<br class="">fuel level: ca. 50%<br class="">temp: 27°C<br class="">type: 1mV <-- Is this a type? Really?<br class=""></blockquote>Yes, it is the "battery type" ADC input. Which is not used on the GTA04<br class="">design, but other hardware. It could be used to measure a resistor built<br class="">into the battery to make the software know about small and big batteries.<br class=""></blockquote>okay. I guess there is no way to disable unused ports in dt.<br class=""></blockquote><div class=""><br class=""></div>Well, it can be disabled in DT but it could also be ignored by user-space...</div><div class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><blockquote type="cite" class="">Battery /sys/class/power_supply/bq27000-battery<br class=""></blockquote>this is the fuel gauge (bq27000) inside the battery, i.e. quite precise<br class=""></blockquote>Okay. So this might be the one that a generic userspace wants to use, if<br class="">present?<br class=""></blockquote><div class=""><br class=""></div>Yes. But there is no "generic" thing here. User must choose one of</div><div class="">the records found in /sys/class/power_supply</div><div class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><blockquote type="cite" class="">present: 1<br class="">technology: Li-ion<br class="">capacity: 10%<br class="">status: Charging<br class=""><br class="">Battery /sys/class/power_supply/gta04-battery<br class=""></blockquote>this is our generic-adc-battery driver which tries to estimate the battery<br class="">fuel level like the formula in the script. But they differ for two reasons:<br class="">1. there is noise on the ADC signals so they may measure different voltage<br class="">2. the formula used by the generic-adc-battery driver is questionable<br class=""></blockquote>So this would be the fall-back if fuel gauge doesn't work or exist?<br class=""></blockquote><div class=""><br class=""></div>Yes.</div><div class=""><br class=""></div><div class="">BR,</div><div class="">Nikolaus</div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>