Daily Ubuntu Kernel Builds - Now With 100% More APT Repo!

I previously posted that I am building daily kernels for the VF2 that are compatible with Ubuntu (and presumably any other Debian derivative, and possibly other distros like Arch or Fedora, though that is untested). I have changed the Github repo and added some new features, such as an apt repo so you can automatically upgrade to the new kernel. Please note the new GH page: GitHub - agreenbhm/linux: Linux kernel source tree.

Daily builds of the kernel will be available as releases for manual installation if you prefer. To use apt, do the following:

  1. Download GPG key (https://raw.githubusercontent.com/agreenbhm/linux/apt/repo/agreenbhm-linux-repo-key.asc) to /etc/apt/trusted.gpg.d/
  2. Create a new repo file: /etc/apt/sources.list.d/custom_kernel.list
  3. Add the following to custom_kernel.list. Ensure you include the trailing " /":
    deb https://agreenbhm.github.io/linux/repo/riscv64 /
  4. Run “apt update” to update the local repo cache.
  5. To install the kernel, run “apt install linux-image-rolling linux-headers-rolling”.
  6. In the future, you will be able to just do “apt update && apt upgrade” to install a new daily build.

Note:

  • This is for Ubuntu server; it’s unlikely the drivers for a desktop environment are included.
  • If you are on the v1.2a variant of the board make sure you edit “/etc/flash-kernel/machine” to show the correct board version before updating. Otherwise you will get the wrong DTB installed and you will lose network connectivity.
11 Likes

That’s really cool, thanks for doing this.

1 Like

Was that a typo? I only see /etc/apt/sources.list.d/ ?

Btw, CONFIG_SIFIVE_CCACHE should be enabled(CPU L2 cache controller), which I forgot in previous pull request.

Yes, typo indeed. Thanks for catching that. I’ve updated the post.

Just updated the Docker defconfig (which builds are based on) with that, thanks. Please direct any future pull requests to this new repo rather than the old one that you used (which I have since removed).

I’d add to your instruction to make sure to update BEFORE INSTALLATION /etc/flash-kernel/machine if you have a 1.2A board (100MbE + 1GbE). Otherwise you will like loose network access (which for me meant a lengthy recovery as I’m remote-only-NFS-mounted).

Good suggestion, updated the post. That’s not unique to my kernel; it’s due to the Ubuntu config and would happen with any kernel update, even ones from Canonical.

Absolutely, sorry for not making that clear. What different here is that you made it so easy to change the kernel :smile:

Note, everything is working fine now and I’m not a difference in my compute intensive benchmark so the L2 must be working despite the missing CONFIG_SIFIVE_CCACHE.

ADD: greif, I am seeing this

[   76.697216] nvme nvme0: I/O 896 QID 3 timeout, completion polled
[  107.417135] nvme nvme0: I/O 896 QID 2 timeout, completion polled
[  107.417238] nvme nvme0: I/O 897 QID 3 timeout, completion polled

which I vaguely recall has an issue on github. This is an issue with kernel 6.3 + the patches that doesn’t exist in 5.10, so if you depend on NVMe I’d strong advise waiting for now.

1 Like

I don’t have an NVMe SSD in my board so this hasn’t come up for me before. If I can find one in my office I’ll take a look at the problem. The cache config was added to the build and pushed a few hours ago so the benchmark you’re running may actually have the cache enabled.

No, I used a kernel from before your fix. I just pulled the latest kernel too.

OT: Unfortunately updating the kernel breaks perf (nothing specific to your work). It’s not a big deal as I can just build it myself, but if it’s a easy fix you might throw it in there. Here’s what is reported:

WARNING: perf not found for kernel 6.3.0+

  You may need to install the following packages for this specific kernel:
    linux-tools-6.3.0+-6.3.0+
    linux-cloud-tools-6.3.0+-6.3.0+

  You may also want to install one of the following packages to keep up to date:
    linux-tools-6.3.0+
    linux-cloud-tools-6.3.0+
1 Like

If I read correctly, it looks like I just needed to enable CONFIG_PROFILING as the perf options were already on, but the profiling dependency was not. I will kick off another build.

I was not able to repeat your success from a fresh image flashed to the wiped new 128GB sdcard. I don’t say this lightly either. I tried 3 times with the same results starting with a fresh image of starfive-jh7110-VF2-SD-wayland.img that was booting with the pink desktop.

I’ve tried your steps 1 to 5 and the boot process seems to freeze. My vf2 debian desktop from the march 2023 image doesn’t display the pink login after power up. I’ve tried it just with the SBC to the hd monitor. I’ve tried using 2 hdmi cables to one hd monitor. One for the SBC and the other for my fedora silverblue x86_64 session during VF2 power on. Same result with the same output as given below with last lines I see as “deferred probe pending”.

sudo minicom -D /dev/ttyUSB0 -b 115200
[sudo] password for davidm: 


Welcome to minicom 2.8

OPTIONS: I18n 
Compiled on Jan 19 2023, 00:00:00.
Port /dev/ttyUSB0, 20:38:53

Press CTRL-A Z for help on special keys


U-Boot SPL 2021.10 (Mar 24 2023 - 01:42:56 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI

OpenSBI v1.2
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|___/_____|
        | |
        |_|

Platform Name             : StarFive VisionFive V2
Platform Features         : medeleg
Platform HART Count       : 5
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 4000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : pm-reset
Platform Shutdown Device  : pm-reset
Platform Suspend Device   : ---
Firmware Base             : 0x40000000
Firmware Size             : 392 KB
Firmware RW Offset        : 0x40000
Runtime SBI Version       : 1.0

Domain0 Name              : root
Domain0 Boot HART         : 1
Domain0 HARTs             : 0*,1*,2*,3*,4*
Domain0 Region00          : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
Domain0 Region01          : 0x0000000040000000-0x000000004003ffff M: (R,X) S/U: ()
Domain0 Region02          : 0x0000000040040000-0x000000004007ffff M: (R,W) S/U: ()
Domain0 Region03          : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X)
Domain0 Next Address      : 0x0000000040200000
Domain0 Next Arg1         : 0x0000000042200000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes
Domain0 SysSuspend        : yes

Boot HART ID              : 1
Boot HART Domain          : root
Boot HART Priv Version    : v1.11
Boot HART Base ISA        : rv64imafdcbx
Boot HART ISA Extensions  : none
Boot HART PMP Count       : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count      : 2
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2021.10 (Mar 24 2023 - 01:42:56 +0800), Build: jenkins-github_visionfive2-13

CPU:   rv64imacu
Model: StarFive VisionFive V2
DRAM:  8 GiB
MMC:   sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

StarFive EEPROM format v2

--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D008E000-00002621
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:36:43
Ethernet MAC1 address: 6c:cf:39:00:36:44
--------EEPROM INFO--------

In:    serial
Out:   serial
Err:   serial
Model: StarFive VisionFive V2
Net:   eth0: ethernet@16030000, eth1: ethernet@16040000
switch to partitions #0, OK
mmc1 is current device
found device 1
bootmode flash device 1
385 bytes read in 4 ms (93.8 KiB/s)
Importing environment from mmc1 ...
Can't set block device
Hit any key to stop autoboot:  0 
48366 bytes read in 10 ms (4.6 MiB/s)
48366 bytes written in 10 ms (4.6 MiB/s)
Retrieving file: /extlinux/extlinux.conf
1385 bytes read in 7 ms (192.4 KiB/s)
U-Boot menu
1:      Debian GNU/Linux bookworm/sid 6.3.0+
2:      Debian GNU/Linux bookworm/sid 6.3.0+ (rescue target)
3:      Debian GNU/Linux bookworm/sid 5.15.0-starfive
4:      Debian GNU/Linux bookworm/sid 5.15.0-starfive (rescue target)
Enter choice: 1:        Debian GNU/Linux bookworm/sid 6.3.0+
Retrieving file: /initrd.img-6.3.0+
10459640 bytes read in 457 ms (21.8 MiB/s)
Retrieving file: /vmlinuz-6.3.0+
9409550 bytes read in 412 ms (21.8 MiB/s)
append: root=/dev/mmcblk1p4 root=/dev/mmcblk1p4 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0
Retrieving file: /dtbs/starfive/jh7110-visionfive-v2.dtb
48366 bytes read in 9 ms (5.1 MiB/s)
   Uncompressing Kernel Image
Moving Image from 0x44000000 to 0x40200000, end=4198e000
## Flattened Device Tree blob at 48000000
   Booting using the fdt blob at 0x48000000
   Using Device Tree in place at 0000000048000000, end 000000004800eced

Starting kernel ...

clk u2_dw_i2c_clk_core already disabled
clk u2_dw_i2c_clk_apb already disabled
clk u5_dw_i2c_clk_core already disabled
clk u5_dw_i2c_clk_apb already disabled
[    0.000000] Linux version 6.3.0+ (root@9164ec80e2e5) (riscv64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #36 SMP Sat May  6 21:03:11 UTC 2023
[    0.000000] Machine model: StarFive VisionFive V2
[    0.000000] earlycon: uart0 at MMIO32 0x0000000010000000 (options '115200')
[    0.000000] printk: bootconsole [uart0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000080000000, size 512 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x0000000080000000..0x000000009fffffff (524288 KiB) map reusable linux,cma
[    0.000000] OF: reserved mem: 0x0000000040000000..0x000000004007ffff (512 KiB) nomap non-reusable opensbi@40000000
[    0.000000] OF: reserved mem: 0x00000000c0110000..0x00000000c01fffff (960 KiB) nomap non-reusable e24@c0000000
[    0.000000] OF: reserved mem: 0x00000000f0000000..0x00000000f1fffffe (32767 KiB) map non-reusable xrpbuffer@f0000000
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000023fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000004007ffff]
[    0.000000]   node   0: [mem 0x0000000040080000-0x00000000c010ffff]
[    0.000000]   node   0: [mem 0x00000000c0110000-0x00000000c01fffff]
[    0.000000]   node   0: [mem 0x00000000c0200000-0x000000023fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000023fffffff]
[    0.000000] SBI specification v1.0 detected
[    0.000000] SBI implementation ID=0x1 Version=0x10002
[    0.000000] SBI TIME extension detected
[    0.000000] SBI IPI extension detected
[    0.000000] SBI RFENCE extension detected
[    0.000000] SBI SRST extension detected
[    0.000000] SBI HSM extension detected
[    0.000000] CPU with hartid=0 is not available
[    0.000000] CPU with hartid=0 is not available
[    0.000000] CPU with hartid=0 is not available
[    0.000000] CPU with hartid=0 is not available
[    0.000000] riscv: base ISA extensions acdfim
[    0.000000] riscv: ELF capabilities acdfim
[    0.000000] percpu: Embedded 19 pages/cpu s38776 r8192 d30856 u77824
[    0.000000] Kernel command line: root=/dev/mmcblk1p4 root=/dev/mmcblk1p4 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0
[    0.000000] Unknown kernel command line parameters "selinux=0", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2064384
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
[    0.000000] Memory: 7568604K/8388608K available (11762K kernel code, 5034K rwdata, 4096K rodata, 2199K init, 498K bss, 295716K reserved, 524288K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000] rcu:     RCU debug extended QS entry/exit.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] CPU with hartid=0 is not available
[    0.000000] riscv-intc: unable to find hart id for /cpus/cpu@0/interrupt-controller
[    0.000000] riscv-intc: 64 local interrupts mapped
[    0.000000] plic: plic@c000000: mapped 136 interrupts with 4 handlers for 9 contexts.
[    0.000000] riscv: providing IPIs using SBI IPI extension
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] riscv-timer: riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 881590404240 ns
[    0.000001] sched_clock: 64 bits at 4MHz, resolution 250ns, wraps every 2199023255500ns
[    0.009041] Console: colour dummy device 80x25
[    0.013920] printk: console [tty0] enabled
[    0.019059] Calibrating delay loop (skipped), value calculated using timer frequency.. 8.00 BogoMIPS (lpj=40000)
[    0.030255] pid_max: default: 32768 minimum: 301
[    0.035414] LSM: initializing lsm=capability,apparmor,integrity
[    0.042028] AppArmor: AppArmor initialized
[    0.046734] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.055232] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.066377] cblist_init_generic: Setting adjustable number of callback queues.
[    0.074327] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.081150] riscv: ELF compat mode unsupported
[    0.081159] ASID allocator disabled (0 bits)
[    0.090867] rcu: Hierarchical SRCU implementation.
[    0.096143] rcu:     Max phase no-delay instances is 1000.
[    0.102139] EFI services will not be available.
[    0.107523] smp: Bringing up secondary CPUs ...
[    0.114744] smp: Brought up 1 node, 4 CPUs
[    0.121397] devtmpfs: initialized
[    0.134327] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.145164] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.167164] pinctrl core: initialized pinctrl subsystem
[    0.174068] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.181310] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.189250] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.198118] audit: initializing netlink subsys (disabled)
[    0.204229] audit: type=2000 audit(0.150:1): state=initialized audit_enabled=0 res=1
[    0.204548] thermal_sys: Registered thermal governor 'step_wise'
[    0.212802] cpuidle: using governor menu
[    0.230705] platform soc: Fixed dependency cycle(s) with /soc/plic@c000000
[    0.248703] platform soc:dsi-output: Fixed dependency cycle(s) with /soc/dc8200@29400000/port/endpoint@2
[    0.259470] platform 295d0000.mipi: Fixed dependency cycle(s) with /soc/dsi-output/ports/port@1/endpoint
[    0.270214] platform 29590000.hdmi: Fixed dependency cycle(s) with /soc/dc8200@29400000/port/endpoint@1
[    0.283036] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.290498] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.297398] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.304853] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.481898] raid6: int64x8  gen()   588 MB/s
[    0.652014] raid6: int64x4  gen()   957 MB/s
[    0.822127] raid6: int64x2  gen()   927 MB/s
[    0.992279] raid6: int64x1  gen()   743 MB/s
[    0.996971] raid6: using algorithm int64x4 gen() 957 MB/s
[    1.173016] raid6: .... xor() 536 MB/s, rmw enabled
[    1.178374] raid6: using intx1 recovery algorithm
[    1.184013] SCSI subsystem initialized
[    1.188467] usbcore: registered new interface driver usbfs
[    1.194553] usbcore: registered new interface driver hub
[    1.200418] usbcore: registered new device driver usb
[    1.206318] mc: Linux media interface: v0.10
[    1.211042] videodev: Linux video capture interface: v2.00
[    1.217302] Advanced Linux Sound Architecture Driver Initialized.
[    1.224541] Bluetooth: Core ver 2.22
[    1.228515] NET: Registered PF_BLUETOOTH protocol family
[    1.234349] Bluetooth: HCI device and connection manager initialized
[    1.241342] Bluetooth: HCI socket layer initialized
[    1.246702] Bluetooth: L2CAP socket layer initialized
[    1.252271] Bluetooth: SCO socket layer initialized
[    1.257945] vgaarb: loaded
[    1.261242] clocksource: Switched to clocksource riscv_clocksource
[    1.268892] AppArmor: AppArmor Filesystem Enabled
[    1.282135] NET: Registered PF_INET protocol family
[    1.288483] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    1.308252] tcp_listen_portaddr_hash hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    1.317918] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.326460] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    1.336045] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes, linear)
[    1.351519] TCP: Hash tables configured (established 65536 bind 65536)
[    1.358989] UDP hash table entries: 4096 (order: 6, 393216 bytes, linear)
[    1.367018] UDP-Lite hash table entries: 4096 (order: 6, 393216 bytes, linear)
[    1.375751] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.382618] RPC: Registered named UNIX socket transport module.
[    1.389125] RPC: Registered udp transport module.
[    1.394314] RPC: Registered tcp transport module.
[    1.399479] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.407845] PCI: CLS 0 bytes, default 64
[    1.412388] Unpacking initramfs...
[    1.412942] Initialise system trusted keyrings
[    1.421591] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    1.429039] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.435917] NFS: Registering the id_resolver key type
[    1.441542] Key type id_resolver registered
[    1.446147] Key type id_legacy registered
[    1.450599] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.458012] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.466229] ntfs: driver 2.1.32 [Flags: R/W].
[    1.471102] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    1.478196] fuse: init (API version 7.38)
[    1.521387] NET: Registered PF_ALG protocol family
[    1.526706] xor: measuring software checksum speed
[    1.536227]    8regs           :  2344 MB/sec
[    1.545262]    8regs_prefetch  :  2335 MB/sec
[    1.554288]    32regs          :  2344 MB/sec
[    1.563331]    32regs_prefetch :  2335 MB/sec
[    1.568130] xor: using function: 32regs (2344 MB/sec)
[    1.573723] Key type asymmetric registered
[    1.578232] Asymmetric key parser 'x509' registered
[    1.583716] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    1.592141] io scheduler mq-deadline registered
[    1.597135] io scheduler kyber registered
[    1.607835] CCACHE: DataError @ 0x00000000.08040140
[    1.613347] CCACHE: DataFail @ 0x00000000.0804005B
[    1.618723] CCACHE: 8 banks, 16 ways, sets/bank=256, bytes/block=64
[    1.625661] CCACHE: Index of the largest way enabled: 15
[    1.674636] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[    1.691383] loop: module loaded
[    1.698390] CAN device driver interface
[    1.703863] usbcore: registered new interface driver uas
[    1.709745] usbcore: registered new interface driver usb-storage
[    1.716750] usbcore: registered new interface driver uvcvideo
[    1.724223] softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[    1.733533] softdog:              soft_reboot_cmd=<not set> soft_active_on_boot=0
[    1.742076] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@redhat.com
[    1.751686] Bluetooth: HCI UART driver ver 2.3
[    1.756584] Bluetooth: HCI UART protocol H4 registered
[    1.763019] sdhci: Secure Digital Host Controller Interface driver
[    1.769819] sdhci: Copyright(c) Pierre Ossman
[    1.774677] Synopsys Designware Multimedia Card Interface Driver
[    1.781643] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.788387] usbcore: registered new interface driver usbhid
[    1.794538] usbhid: USB HID core driver
[    1.798979] riscv-pmu-sbi: SBI PMU extension is available
[    1.804968] riscv-pmu-sbi: 16 firmware and 4 hardware counters
[    1.811411] riscv-pmu-sbi: Perf sampling/filtering is not supported as sscof extension is not available
[    1.825551] usbcore: registered new interface driver snd-usb-audio
[    1.839531] xt_time: kernel timezone is -0000
[    1.844384] IPVS: Registered protocols (TCP, UDP)
[    1.849602] IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
[    1.857908] IPVS: ipvs loaded.
[    1.861306] IPVS: [rr] scheduler registered.
[    1.866339] NET: Registered PF_INET6 protocol family
[    1.873132] Segment Routing with IPv6
[    1.877236] In-situ OAM (IOAM) with IPv6
[    1.881747] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.888896] NET: Registered PF_PACKET protocol family
[    1.894553] Bridge firewalling registered
[    1.898963] can: controller area network core
[    1.903887] NET: Registered PF_CAN protocol family
[    1.909164] can: raw protocol
[    1.912460] can: broadcast manager protocol
[    1.917075] can: netlink gateway - max_hops=1
[    1.922178] Bluetooth: RFCOMM TTY layer initialized
[    1.927561] Bluetooth: RFCOMM socket layer initialized
[    1.933257] Bluetooth: RFCOMM ver 1.11
[    1.937397] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    1.943259] Bluetooth: BNEP filters: protocol multicast
[    1.949018] Bluetooth: BNEP socket layer initialized
[    1.954587] 8021q: 802.1Q VLAN Support v1.8
[    1.959224] lib80211: common routines for IEEE802.11 drivers
[    1.965574] 9pnet: Installing 9P2000 support
[    1.970368] Key type dns_resolver registered
[    1.990970] Loading compiled-in X.509 certificates
[    2.006402] Btrfs loaded, zoned=no, fsverity=no
[    2.011568] AppArmor: AppArmor sha1 policy hashing enabled
[    2.022143] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    2.305914] Freeing initrd memory: 10212K
[    2.337253] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    2.343524] clk: Disabling unused clocks
[    2.347851] ALSA device list:
[    2.351110]   No soundcards found.
[    2.357202] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[    2.363230] Freeing unused kernel image (initmem) memory: 2196K
[    2.421297] Run /init as init process
[   13.363165] platform 10030000.i2c: deferred probe pending
[   13.369108] platform 10050000.i2c: deferred probe pending
[   13.375057] platform 12050000.i2c: deferred probe pending
[   13.380986] platform 12060000.i2c: deferred probe pending
[   13.386923] platform 13040000.gpio: deferred probe pending
[   13.392956] platform 17020000.gpio: deferred probe pending
[   13.398979] platform 16050000.dma-controller: deferred probe pending
[   13.405966] platform 10000000.serial: deferred probe pending
[   13.412188] platform gpio-restart: deferred probe pending
[   13.418117] platform 120e0000.tmon: deferred probe pending
[   13.424149] platform cpufreq-dt: deferred probe pending
[   13.429886] platform leds: deferred probe pending
[   13.435064] platform soc:snd-card1: deferred probe pending
[   13.441091] platform soc:snd-card3: deferred probe pending
[   13.447126] platform 120b0000.i2stx_4ch0: deferred probe pending
[   13.453734] platform 2b000000.pcie: deferred probe pending
[   13.459761] platform 2c000000.pcie: deferred probe pending

Apologies for the lack of clarity in my post; this kernel is built and tested for Ubuntu server. There are likely several missing drivers necessary for a desktop environment.

1 Like

Update to install instructions (unfortunately can’t edit OP):

Please install “linux-image-rolling” and “linux-headers-rolling” from my repo for future updates. 6.4.0-RC1 just dropped yesterday and due to the way the packaging was set this is seen as a different package from the 6.3.0+ package, meaning your kernel would not update to the latest version and would be stuck on 6.3.0+. I’ve changed the naming so now it’s just a rolling-release of the necessary packages, with the version info in the details. This should allow future updates to 6.4.0-RC2, 6.4.0, 6.5.0, etc.

5 Likes

I gave it a go for the first time just now with the ubuntu server image. The uart output for before and after is verbosely available here:

My first apt-get upgrade succeeded.

Thank you for all your efforts. I’m grateful. I’m surprised the kernel is already at 6.4rc1!!! WOW!

During the upgrade, I really appreciated all the efforts around the device trees being preserved just in case something goes wrong:
Processing triggers for initramfs-tools (0.142ubuntu2) …
update-initramfs: Generating /boot/initrd.img-6.4.0-rc1+
Using DTB: starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
Installing /usr/lib/linux-image-6.4.0-rc1+/starfive/jh7110-starfive-visionfive-2-v1.3b.dtb into /boot/dtbs/6.4.0-rc1+/starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
Taking backup of jh7110-starfive-visionfive-2-v1.3b.dtb.
Installing new jh7110-starfive-visionfive-2-v1.3b.dtb.
System running in EFI mode, skipping.
Scanning processes…
Scanning candidates…
Scanning processor microcode…
Scanning linux images…
Running kernel seems to be up-to-date.

Hi, thanks for the great work. I was able to install the latest kernel and USB is working!

However, I have some issues with ethernet. Only eth1 port seems to work and get an DHCP IP address. When I tried to ssh into it, the screen often hangs either during the login process or later running normal apps (such as htop). Ethernet is reachable via ping. It seems data is not sent through.

Traffic going out to the internet seems fine as we I was able to download files, ssh to outside and do apt update, etc. (Of course, I was all these outgoing network activities from serial console instead of a ssh session)

Any ideas? Thanks!

1 Like

Are you possibly using the v1.2a variant of the board and didn’t modify /etc/flash-kernel/machine to reflect that?

1 Like

You have a 1 GbE + 100 MbE (AKA 1.2A) board? You need to set the board type.

It is v1.2A as printed on the board. I followed ubuntu wiki site and have updated the machine as follows. Anything else I need to do?

jsun@vf2:~/temp$ cat /etc/flash-kernel/machine 
StarFive VisionFive 2 v1.2A