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