Rpi4 < $(community_build)

ok... you have to make this... shoutout to DarkElvenAngel [thankyou], i used an alpine chroot on-device - /etc/init.d/ntop will set one up for you if you edit the variables at the top and start it... chroot CHROOTDIR, ( apk add dtc git make etc. ), git clone, make all, (i skipped this: make install), mkdir /run, cp argononed /usr/sbin/, cp argonone-shutdown /usr/sbin, cp argonone.dtbo /boot/overlays/ ( maybe run the setup-overlay.sh )... then likely reboot and run 'argononed' ( or add /usr/sbin/argononed & to your rc.local etc. )...

jennnniiii-i-am-runnnnniiiiiiiiiing
[root@dca632 ../argonFANcompiled 46°]# ps w | grep argon
21458 root       840 S    ./argononed
21460 root         0 SW   [irq/42-argonone]

[root@dca632 ../argonFANcompiled 45°]# cat /var/log/argononed.log 

Sun Sep 13 17:32:02 2020 
[INFO] Startup ArgonOne Daemon ver 0.1.6
[INFO] Loading Configuration
[INFO] Reading values from device-tree
[INFO] GPIO initialized
[INFO] RPI MODEL 4B 2GB rev 1.1
[INFO] Lock file created
[INFO] Now running as a daemon
[INFO] Set GPIO 4 to mode INPUT
[INFO] Set GPIO 4 pull up/down to DOWN
[INFO] Now waitting for button press
[INFO] Monitoring line 4 on /dev/gpiochip0
[INFO] Successfully opened /dev/vcio for temprature sensor

( as with most things build related, a few users need this, i'll look at integrating it (wrt.ini option and init.d script) into the build once sort out git versioning )

Thank you so much for looking into this. I have never done some of this stuff before but this is a great opportunity to learn.

I followed your explanation and the daemon is now running.
The issue is the I2C is still not working.
I have installed kmod-2c-core, i2c-tools but no i2c device appears in /dev .
Is there anything else i should be trying?

/boot/config.txt include distroconfig.txt

[all]
dtparam=i2c_arm=on
dtparam=i2c1=on
dtoverlay=argonone

argononed log

argononed log

Sun Sep 13 15:12:41 2020 [INFO] Startup ArgonOne Daemon ver 0.1.6
Sun Sep 13 15:12:41 2020 [INFO] Loading Configuration
Sun Sep 13 15:12:41 2020 [INFO] Reading values from device-tree
Sun Sep 13 15:12:41 2020 [INFO] Hysteresis set to 3
Sun Sep 13 15:12:41 2020 [INFO] Fan Speeds set to 10% 55% 100%
Sun Sep 13 15:12:41 2020 [INFO] Fan Temps set to 55 60 65
Sun Sep 13 15:12:41 2020 [INFO] GPIO initialized
Sun Sep 13 15:12:41 2020 [INFO] RPI MODEL 4B 4GB rev 1.1
Sun Sep 13 15:12:41 2020 [INFO] Lock file created
Sun Sep 13 15:12:41 2020 [CRITICAL] Failed to open the i2c bus
Sun Sep 13 15:12:41 2020 [INFO] Now running as a daemon
Sun Sep 13 15:12:41 2020 [INFO] Set GPIO 4 to mode INPUT
Sun Sep 13 15:12:41 2020 [INFO] Set GPIO 4 pull up/down to DOWN
Sun Sep 13 15:12:41 2020 [INFO] Now waitting for button press
Sun Sep 13 15:12:41 2020 [INFO] Monitoring line 4 on /dev/gpiochip0
Sun Sep 13 15:12:43 2020 [INFO] Successfully opened /dev/vcio for temprature sensor

she runs;

dtparam=i2c_arm=on #i2c-tools kmod-i2c-bcm2835|core

[root@dca632 /usbstick 47°]# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:         -- -- -- -- -- -- -- -- -- -- -- -- -- 
...

try removing: dtparam=i2c1=on ( keep: dtparam=i2c_arm=on line )

Turns out i was missing kmod-i2c-bcm2835.
Seems to be working now.
Thank you very much!

1 Like

just a quick report to say testing seems all ok with this MWAN vers- no LUCI hangs after 2 days and routing down 3 wan links works as per expected. seems pretty stable.. :grinning:

1 Like

I have issue with SQM. I get very stuttery movement in games. Now i installed the new package
rpi4.64-snapshot-23300-1.13.57-5-r14475-ext4-sys.img
SQM is off and game is working fine without any stutter.

please show

uci show sqm

and the speeds up / down from a speedtest with nothing using the network...

you can try the command

speedtest-ookla
uci show sqm
sqm.eth1=queue
sqm.eth1.ingress_ecn='ECN'
sqm.eth1.egress_ecn='NOECN'
sqm.eth1.itarget='auto'
sqm.eth1.etarget='auto'
sqm.eth1.verbosity='5'
sqm.eth1.qdisc='cake'
sqm.eth1.qdisc_advanced='1'
sqm.eth1.squash_dscp='1'
sqm.eth1.squash_ingress='1'
sqm.eth1.qdisc_really_really_advanced='1'
sqm.eth1.eqdisc_opts='nat dual-srchost ack-filter'
sqm.eth1.linklayer='ethernet'
sqm.eth1.linklayer_advanced='1'
sqm.eth1.tcMTU='2047'
sqm.eth1.tcTSIZE='128'
sqm.eth1.linklayer_adaptation_mechanism='default'
sqm.eth1.debug_logging='1'
sqm.eth1.enabled='1'
sqm.eth1.iqdisc_opts='nat dual-dsthost ingress'
sqm.eth1.interface='eth1'
sqm.eth1.download='20100'
sqm.eth1.upload='10050'
sqm.eth1.overhead='34'
sqm.eth1.tcMPU='64'
sqm.eth1.script='piece_of_cake.qos'

Latency: 14.73 ms (0.55 ms jitter)
Download: 21.77 Mbps (data used: 19.0 MB)
Upload: 9.73 Mbps (data used: 4.4 MB)
package is 20mb download and 10mb upload

and one more thing when i was getting stuttery movement in game. Ping plotter was showing smooth pings. no packet loss whatsever

1 Like

ok, not sure if adaption->default + overhead is normal? either way... this isn't build related... and there is likely something else going on...

make a separate thread so all the sqm experts will see it. ( you can link to the post above by clicking the diagonal-chain icon on the lower right of the post )

@anon50098793 what you did? after updating the pi4. All the packages installed automatically without doing anythings.
before i used to install all the packages one by one now they are already installed.
Thanks great :+1:

1 Like

fantastic to get feedback ( working even better ) from someone in the wild about the autorestore...

in my testing, it was just a tad unpredictable to make perma-default setting... so in future ( r145xx+ ) i'm disabling the 'apply' of this...

what this means...

  • you can sysupgrade -R to perform autorestore during firstboot
  • you can enable always with AUTORESTOREAPPLY=1

But I recommend manually using the method below after firstboot is all finished, so you review / verify what package actions are to be performed...

MANUAL METHOD

Once sysupgraded.... from luci;

  • go to SYSTEM > CUSTOM COMMANDS
  • click 'RUN' on 'restorepackages'
  • if you are happy with the list you can type 'run' in the box, then click RUN again

From the command line (alternative to luci method);

restorepackages.sh
restorepackages.sh run
#(or edit /autorestore.sh and run that yourself)
sample restorepackages.sh
[root@dca632 /usbstick 41°]# restorepackages.sh 
unsupported:  > show
INTERACTIVE restorepackages.sh> curl [installed]
/etc/custom/autorestore.sh [default:restoredalready] add:18 rem:0
opkg install mailsend #[ok]#[ok]#customapp
opkg install libmount1 #[ok]#[ok]#customapp
opkg install mount-utils #[ok]#[ok]#customapp
opkg install libopcodes #[ok]#[ok]#customapp
opkg install libctf #[ok]#[ok]#customapp
opkg install objdump #[ok]#[ok]#customapp
opkg install binutils #[ok]#[ok]#customapp
opkg install gcc #[ok]#[ok]#customapp
opkg install make #[ok]#[ok]#customapp
opkg install git #[ok]#[ok]#customapp
opkg install boost #[ok]#[ok]#customapp
opkg install libevent2-core7 #[ok]#[ok]#customapp
opkg install libevent2-pthreads7 #[ok]#[ok]#customapp
opkg install mtr #[ok]#[ok]#customapp
opkg install libi2c #[ok]#[ok]#customapp
opkg install i2c-tools #[ok]#[ok]#customapp
opkg install kmod-i2c-core #[ok]#[ok]#customapp
opkg install kmod-i2c-bcm2835 #[ok]#[ok]#customapp
################################################ firstboot allgood 202009190702
################################### Added... 18
binutils
boost
gcc
git
i2c-tools
kmod-i2c-bcm2835
kmod-i2c-core
libctf
libevent2-core7
libevent2-pthreads7
libi2c
libmount1
libopcodes
mailsend
make
mount-utils
mtr
objdump
################################### Removed... 0

Has anyone tried USB boot to see if theres any perf increase?

Not sure if there would be.

http://www.jeffgeerling.com/blog/2020/im-booting-my-raspberry-pi-4-usb-ssd

https://www.jeffgeerling.com/blog/2020/raspberry-pi-usb-boot-uasp-trim-and-performance

wanted to but...

  1. pros(for me): usb boot, particularly 'boot order' aka fallback when not present etc. also tftpboot

  2. cons: current one works pretty well ( minus the above feature ), mmc so far seems to be the quickest...

  3. need to keep this pi as common / bugfree as possible for the builds, and i've fried the primary uart pins... and without those i'm reluctant to mess around with the bootloader...

pretty sure the openwrt images will be fine... athough the default cmdline.txt would need to be changed after writing the image, preferably to PARTUUID= should work... come to think of it... there is probably a bit of stuff in preinit / init.d / lib-upgrade... that's likely hardcoded to mmcblk... so sysupgrade would be 'broken'

( edit: not as bad as i'd guessed )

[root@dca632 /usbstick 46°]# fgrep -r mmc /lib
/lib/preinit/79_move_config:BOOTPART=/dev/mmcblk0p1

only a few lines tho...

i think practically the newer firmware has bugfixes particularly for usb/video... so anyone with buggy usb or video behavior would have a good practical reason to take the plunge...

1 Like

next build will support an experimental 'dual firmware' feature... you'll need to run a one time script to set it up... ( which requires internet access for now )

from that point on... subsequent flashes will go to the 'alternate' partition... so you'll be able to run 20.x and keep snapshot as the second OS...

i'll extend it to support USB... but at the moment everything is tied to a common 'boot' drive/partition... (mmc)... my pi, is in a case and getting to the mmc is difficult... so i'll be looking at making that compatible with the latest pi, firmware 'boot-order'... which would allow you to have your boot files on the usb...

os1 or os2 can be anywhere ( tied to mmc for testing )... so if you wanted to have one rootfs on usb or both, this will be do-able...

if anyone is keen on this feature... i'd like to know how you would mostly use it?

  • ( 20.x + snapshot ? )
  • ( wifi travel mode vs home router mode? )

etc. etc. this ties in to how config 'syncing' / partition support is implemented...

another thing is rootfs size... which i've hardcoded to be the same as the baseos ( 1G )... but it is possible to make os1 and/or os2 partition sizes whatever ( i.e. half of the free sdcard space each )

( NOTE: these features also allow for optional EXCLUSIVE rootfs partition expansion... or 'live/mode'... but as I don't really need these they are not a priority )

1 Like

It is my home router, so I cannot experiment much with it.

1 Like

usb boot ( normal openwrt method-ish )...

openwrt-on-sdcusb2.0-anotherdiskwasinusb3
[    0.238308] 8021q: 802.1Q VLAN Support v1.8
[    0.238548] Key type ._fscrypt registered
[    0.238551] Key type .fscrypt registered
[    0.241461] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    0.241509] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 14, base_baud = 0) is a PL011 rev2
[    0.241653] fe201400.serial: ttyAMA1 at MMIO 0xfe201400 (irq = 14, base_baud = 0) is a PL011 rev2
[    0.583413] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    0.589044] printk: console [ttyAMA1] enabled
[    0.807769] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    0.818880] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    0.823587] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    0.823590] usb 1-1: Product: USB2.0 Hub
[    0.848038] hub 1-1:1.0: USB hub found
[    0.853755] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    0.868025] hub 1-1:1.0: 4 ports detected
[    0.872980] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    1.275405] usb 1-1.1: new high-speed USB device number 3 using xhci_hcd
[    1.326081] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.333080] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.340075] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.345577] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA
[    1.353572] of_cfs_init
[    1.356065] of_cfs_init: OK
[    1.359583] uart-pl011 fe201400.serial: no DMA platform data
[    1.365369] Waiting for root device PARTUUID=5452574f-02...
[    1.372879] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    1.379827] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.404841] random: fast init done
[    1.413798] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=0109, bcdDevice= 9.59
[    1.422150] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.429452] usb 1-1.1: Product: USB2.0-CRW
[    1.433540] usb 1-1.1: Manufacturer: Generic
[    1.437802] usb 1-1.1: SerialNumber: 20090815198100000
[    1.442825] mmc1: new high speed SDIO card at address 0001
[    1.459762] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[    1.466283] scsi host0: usb-storage 1-1.1:1.0
[    1.551424] usb 1-1.3: new high-speed USB device number 4 using xhci_hcd
[    1.662586] usb 1-1.3: New USB device found, idVendor=05e3, idProduct=0749, bcdDevice=15.32
[    1.670953] usb 1-1.3: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[    1.678268] usb 1-1.3: Product: USB3.0 Card Reader
[    1.683064] usb 1-1.3: Manufacturer: Generic
[    1.687338] usb 1-1.3: SerialNumber: 000000001532
[    1.693790] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[    1.700187] scsi host1: usb-storage 1-1.3:1.0
[    2.496365] scsi 0:0:0:0: Direct-Access     Generic- SD/MMC           1.00 PQ: 0 ANSI: 0 CCS
[    2.683611] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[    2.708481] usb 2-2: New USB device found, idVendor=2357, idProduct=0601, bcdDevice=30.00
[    2.716666] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[    2.723814] usb 2-2: Product: USB 10/100/1000 LAN
[    2.728528] usb 2-2: Manufacturer: TP-LINK
[    2.732629] usb 2-2: SerialNumber: 000001000000
[    2.737182] scsi 1:0:0:0: Direct-Access     Generic  STORAGE DEVICE   1532 PQ: 0 ANSI: 6
[    2.948318] scsi 1:0:0:1: Direct-Access     Generic  STORAGE DEVICE   1532 PQ: 0 ANSI: 6
[    2.949056] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[    3.108918] sd 0:0:0:0: [sda] 62521344 512-byte logical blocks: (32.0 GB/29.8 GiB)
[    3.117054] sd 0:0:0:0: [sda] Write Protect is off
[    3.122401] sd 0:0:0:0: [sda] No Caching mode page found
[    3.127719] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    3.136536]  sda: sda1 sda2 sda3
[    3.141212] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    3.184855] sd 1:0:0:1: [sdc] 61521920 512-byte logical blocks: (31.5 GB/29.3 GiB)
[    3.193051] sd 1:0:0:1: [sdc] Write Protect is off
[    3.198500] sd 1:0:0:1: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    3.211010]  sdc: sdc1 sdc2
[    3.215185] sd 1:0:0:1: [sdc] Attached SCSI removable disk
[    3.249500] EXT4-fs (sdc2): mounted filesystem without journal. Opts: (null)
[    3.256600] VFS: Mounted root (ext4 filesystem) readonly on device 8:34.
[    3.263808] Freeing unused kernel memory: 576K
[    3.271539] Run /sbin/init as init process
[    3.397002] init: Console is alive
[    3.400511] init: - watchdog -
[    3.719419] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.747568] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.756740] init: - preinit -
[    3.940729] bcmgenet: Skipping UMAC reset
[    3.946148] bcmgenet fd580000.ethernet: configuring instance for external RGMII
[    3.953629] bcmgenet fd580000.ethernet eth0: Link is Down
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    8.007547] mount_root: mounting /dev/root
[    8.934911] EXT4-fs (sdc2): re-mounted. Opts: (null)
  • bootloader is good but updating is not exactly 'simple'
  • speed seems decent on usb2 for os
  • openwrt install / support needs a little tweaking...

summary:

  • hold off on the bootloader update for a month or three... flash process is not foolproof ( simple enough ), and supplimental steps are not for the faint hearted...
1 Like
1.15.17-19_r14571_elfdat_testing

contains updated elf+dat files within the /boot partition...

  • these have no effect ( are not copied ) during sysupgrade, so it should be fairly stable to sysupgrade to... however... i'll leave it labelled as testing as I messed with alot of files in between, so I don't fully trust it yet... also, persistentnlbwmon script was partly rewritten and is not finished... so you will likely not have persistent nlbwmon data on this build

  • if using the factory ( fac ) image... my understanding (guess) is that an old bootloader should just ignore the updated elf+dat files... but as i've updated my bootloader I was unable to test this... so I will keep labelling these builds elfdat_testing until we confirm that old bootloaders work fine with the newer elf+dat files...

should i update from
OpenWrt SNAPSHOT r14475-4a3230683b / LuCI Master git-20.259.37209-95c4082
to r14571

probably not... the only reason to use the newer build is really for the mwan pr ( pre-installed ) or if your bootloader has been updated... ( but even then the older build should work as usual for mmc operations )...