Debian 8.x (Jessie) to 10.11 (Buster) upgrade for Kiwis using BeagleBone Green/Black



  • By "bricked it" I meant that it didn't reboot. I'm sure that it'll come back when I write a new image on a flash card. I already backed up my kiwi.config directory so I'm covered there. It's just a lot more work than it should be. Sigh.

    Still, this is linux, and mainstream Debian Linux has gotten very good at simplifying even major updates and upgrades. For my regular (non-embedded) Debian systems, I can just edit the /etc/apt/sources.list file to reflect a new release name, then do "apt update" and "apt dist-upgrade" followed by a lot of waiting as the new packages are installed one by one.

    This is the only Beagle Board I have, so maybe there's something unique to Linux on this platform. All my other Debian Linux systems are Raspberry Pis and x86s, and I've gotten pretty comfortable with updates on them.

  • edited March 2022

    @ka9q It's possible for BBG/BBB too and I successfully upgrade 5 my KiwiSDR, but you need more much time and always have risk of trouble for remote update, - file system error, power problem and etc. Before start upgrade you must be ready for this problems, create SCP backup and it's only your responsibility.

  • I got my unit working again by simply loading the new image from the micro SD card. I saved and restored the kiwi.config directory by using rsync to stash it on a local machine, then copying it back when I had the new image running. That was a lot faster and easier than storing it on another SD card.

    Admittedly it was quicker to update the system image from a SD card than doing apt-get (as well as more successful), but I wanted to see if the update could be done entirely over the network. I'm sure at least some kiwisdrs are in places that are not easily accessed by their owners to physically insert and remove SD cards.

  • edited May 2022

    (edit:- false alarm. See end.)

    I'm in the process of updating my pair of genuine KiwiSDRs from Jessie to Buster, following rz3dvp's method. As a Linux admin, I wanted to try the upgrade in place before I do the SD-card method. I know I can always nuke and pave as appropriate if this particular method fails, just waiting on delivery of some 8Gb SD cards as I have none spare.

    I see one problem at the moment. After the update, I'm not seeing the Kiwi serial (4542) in the logs. Now, I'm not sure if this is my fault in breaking something during the udpate or something inherently related to the OS update itself.

    This is also an FYI to John in case he sees a raft of KiwiSDRs attempting registration post-update and looking like the Chinese knock-offs - if the issue here is not caused by somethign I missed,

    (I also have an issue with both of the beaglebones being unable to access the FPGA on one of the capes, but I'll start a new thread for that one, once I have the second KiwiSDR updated and back on the network. Suspecting hardware for that one)

    Thu Feb 14 10:12:22 00:00:00.217   L KiwiSDR v1.516 --------------------------------------------------------------------
    Thu Feb 14 10:12:22 00:00:00.220   L compiled: May  2 2022 20:57:50 on kiwisdr1
    Thu Feb 14 10:12:22 00:00:00.220   L -debian 10
    Thu Feb 14 10:12:22 00:00:00.222   L /etc/debian_version 10.12
    Thu Feb 14 10:12:22 00:00:00.227   L background mode: delaying start 30 secs...
    Tue May  3 08:07:15 00:00:30.230     TASK MAX_TASKS 217(198|17|2), stack memory 17.6 MB, stack size 8|32|64 k so(u64_t)
    Tue May  3 08:07:15 00:00:30.300   L reading configuration from file /root/kiwi.config/kiwi.json: 1721 tokens (20.8k bytes)
    Tue May  3 08:07:15 00:00:30.307   L reading configuration from file /root/kiwi.config/admin.json: 127 tokens (3.0k bytes)
    Tue May  3 08:07:15 00:00:30.308   L EEPROM check: open /sys/bus/i2c/devices/2-0054/eeprom No such file or directory
    Tue May  3 08:07:15 00:00:30.309   L can't read serial number from EEPROM and no configuration override
    Tue May  3 08:07:15 00:00:30.309   L reading configuration from file /root/kiwi.config/dx.json
    Tue May  3 08:07:15 00:00:30.335   L DX: 1382 label entries
    Tue May  3 08:07:15 00:00:30.339     ADC_CLOCK: 66.665900 MHz
    Tue May  3 08:07:15 00:00:30.339 ........          L firmware: SDR_RX8_WF2
    Tue May  3 08:07:15 00:00:30.341 ........          L firmware: rx_chans=8 wf_chans=2
    Tue May  3 08:07:15 00:00:30.343 ........          L firmware: RX bufs=8 samps=85 loop=85 rem=0 intr_usec=7083
    Tue May  3 08:07:15 00:00:30.345 ........          L firmware: WF xfer=9 samps=911 rpt=50 loop=18 rem=11
    Tue May  3 08:07:15 00:00:30.346 ........          L webserver: listening on port 8073/8073 for HTTP connections
    Tue May  3 08:07:15 00:00:30.360 ........          L webserver: OK, port [::]:8073
    Tue May  3 08:07:15 00:00:30.363 ........            checking SPI pmux settings..
    Tue May  3 08:07:16 00:00:30.593 ........            SPI: CPU_AM3359 SPI_SHMEM_DISABLE
    Tue May  3 08:07:16 00:00:30.593 ........          L ### using SPI_DEV /dev/spidev0.0
    Tue May  3 08:07:16 00:00:30.595 ........            SPIDEV: max_speed 48000000 bpw 32
    Tue May  3 08:07:17 00:00:31.441 ........            ping..
    Tue May  3 08:07:17 00:00:31.441 ........            ping2..
    Tue May  3 08:07:17 00:00:31.443 ........          L FPGA version 1
    Tue May  3 08:07:17 00:00:31.447 ........          L EEPROM check: open /sys/bus/i2c/devices/2-0054/eeprom No such file or directory
    Tue May  3 08:07:17 00:00:31.449 ........            eeprom_update: BAD serno
    Tue May  3 08:07:17 00:00:31.544 ........            device DNA 11468416|24242e7f
    Tue May  3 08:07:17 00:00:31.545 ........            RX N_CONNS 136 conns 0.084 MB
    Tue May  3 08:07:17 00:00:31.545 ........          L using DC_offsets: I -0.020000 Q -0.020000

    More details:

    root@kiwisdr1:~# uname -a
    Linux kiwisdr1 4.19.94-ti-r73 #1buster SMP PREEMPT Fri Apr 15 21:38:30 UTC 2022 armv7l GNU/Linux
    root@kiwisdr1:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 10 (buster)
    Release:        10
    Codename:       buster

    Entirely possible I missed something specific to the Beaglebone/cape scenario during the update, my experience is mostly x86 and amd64 servers, not the embedded side of the house.


    May  3 08:41:03 kiwisdr1 kiwid: 00:00:30.759   serial number from EEPROM: 4542
    May  3 08:41:03 kiwisdr1 kiwid: 00:00:30.761   reading configuration from file /root/kiwi.config/dx.json

    A power cycle brought the reading of the eeprom back into play. Weird, but it is what it is.

    As you were! :)

  • HI,

    I just received my KiwiSDR from the UK and ready to start playing.

    Is it OK to load the buster firmware before I do anything else or should I configure it under jessie and then upgrade to buster?

    Jim VK7JH

  • The factory installs v1.2 (one point two) of the software. When you get the Kiwi power it up while connected to a network with Internet access. Let it auto update to the latest software version (v1.518 as of today). That process takes about an hour.

    After the update use the site to find the Kiwi's local ip address. Or try kiwisdr.local:8073/ Then you can follow the instructions at the beginning of this thread for upgrading from Jesse to Buster.

    Don't take any shortcuts.

  • @jks Thank you for providing the OS update.

    I spent the rainy afternoon with upgrading my kiwis, which went without surprises.

    My WiFi dongles seem to be supported now without having to install additional software, which is great.

    After the first reboot, I could not login by ssh, neither with user "debian" nor "root". I changed the passwords using the admin console and then I could log in via ssh with the user "debian". However by default, ssh login with root is disabled. /etc/ssh/sshd_config needs an entry "PermitRootLogin yes" for that.

    Otherwise everything went smooth.

  • edited July 2022

    Hi! Just writing to let everyone know that I did this upgrade today and it went pretty smoothly. I have only one complaint - the line that says:

    cd /media/sd_boot/root/.config

    should instead read:

    cd /media/sd_boot/root/kiwi.config

    Aside from that things went really well. I did have one point of confusion because I had booted my Kiwi with the MicroSD card inserted, which caused mmcblk0 and mmcblk1 to be swapped, which led to a lot of confusion when I mounted mmcblk1p1 and tried to restore the configuration files and it complained that the files were the same:

    root@kiwisdr:/media/sd_boot/root/kiwi.config# cp admin.json kiwi.json dx.json ~/kiwi.config

    cp: 'admin.json' and '/root/kiwi.config/admin.json' are the same file

    cp: 'kiwi.json' and '/root/kiwi.config/kiwi.json' are the same file

    cp: 'dx.json' and '/root/kiwi.config/dx.json' are the same file

    But eventually I figured out what I had to do - use the mosd0 command instead of mosd1! That was my fault for not following the directions exactly, though.

    Now to try setting up a wifi dongle...

    UPDATE: Turns out Debian 10 seems to always make mmcblk0 the external SD slot, populated or not, and assigns the internal storage to mmcblk1.

  • jksjks
    edited July 2022

    I fixed .config => kiwi.config in the instructions.

    Also swapped mmc0/mmc1 in the Debian 10 section. Not sure how I missed that or why no one mentioned it until now. I see that Debian 9 (BBAI) also has it reversed compared to Debian 8.

  • The mmc0/mmc1 thing might have just been the result of a kernel update or something. It was definitely the other way around when I was running Debian 8.

  • @circuitmike

    After trying several wifi dongles unsuccessfully with debian 10, I found an older TL_WN 722N and it showed up right away with the correct id and without need to find specific drivers. After that I only needed to use connman which is already built-in to Buster to configure for the local network and voila, both wifi and ethernet access are now available.

    Just in time since I can not bring my BBAI back to life. These TPLink dongles are still sold online for about 20 usd so perhaps something you can give a try as well.



  • Thanks for the tip! I've got several dongles that work fine with 2.4 GHz wifi, but I'm hoping for 5.8 GHz with external antenna jacks. Those are rare, but I have a Panda Wireless PAU09 N600 that fits the bill and has worked for me without custom-compiled drivers on Raspbian 10, at least. Since that's basically Debian 10 I'm hoping it'll work here, too.

    My Kiwi is out in a shed away from the house because the RFI is horrific in my house. I have a Wellbrook loop on the shed roof and I'm hoping to get a stable wifi connection from a Ubiquiti bridge into my home network. Now I just need some time to try this out and get it set up.

  • Hi All,

    I'm not overly familiar with Linux, so bear with me as most of this is going to be down to my lack of skill.

    I've attempted to upgrade one of my KiWi's to Debian10 using John's method. But I have come across a number of problems, that are probably quite easy to resolve, if unlike me you are familiar with Linux.

    Before starting with the upgrade proper, I could not verify the SD card backup (which does work) using the mmc command. I got the message 'command not recognised'

    As I knew the card was good I carried on anyway, as I knew I could recover if things didn't work out.

    The rest went pretty smoothly, and I let it upgrade to the latest version, which ran OK.

    I then tried to copy the configs across from the backup SD card.

    I ran the mmc comand and this time it worked, however half of the required files seem to be missing.

    No problem I'll use WinSCP to copy them across from the archived copies I've stored on my PC.

    Tried WinSCP but it won't connect with the passwords.

    Tried debian and the KiWi serial number - all OK

    However the directory structure now looks different and I can't find the KiWi directories.

    Tried to get into /<root>/root but WinSCP reports.

    Command 'cd "root"'

    failed with return code 1 and the following error message.

    -bash: line 39: cd: root: Permission denied

    SSH in using debian and serial number, and then changed the root password, using "sudo passwd" which seemed to work, as I got the message "passwd: password updated successfully"

    SSH in using root and new password, but access denied.

    I have seen the other thread regarding the Debian root password, and I think I have done things correctly.

    But, two days later, that's where I am...

    For the time being I've reverted back to my non-upgraded copy, until I have enough time and inclination to try again.



  • edited August 2022

    Hi, you can copy your config files via WinSCP to user (debian) profile folder, then login to KiwiSDR via SSH and move or copy it to root folder after "sudo su"

    sudo su
    cp /home/debian/<kiwsdrconfig_backup_folder>/ /root/kiwi.config/

    2-nd way enable root access to SSH (sudo nano/etc/ssh/sshd_config, "PermitRootLogin yes", sudo service ssh restart) and login with root directly like on Debian 8. After complite you can disable root login with "PermitRootLogin no" and restart service again.

  • OK thanks, I'll try these ideas.

    However, I've got other stuff to do that has become more urgent, so I'll have to revisit this later.



  • edited December 2022

    @jks Hi John, and @rz3dvp can the KiwiSDR run on the latest version of Debian 10?

    5 Kiwisdr were running fine on Debian 10.10 - Buster - this was done earlier this year. But now there seems to be a problem with being unable to save the static ip address. It just will not save. I cannot change from DHCP to static. It appears as if it is saved but it isn't.

    Can you please give me some help on this challenge?


  • edited December 2022

    Hi @Jimo like I know on BBB/BBG enabled connman (by default) and you can config static ip address with commands:

    sudo connmanctl services

    this command will show existing <service_name> for your BBB/BBG, now you can check it:

    sudo connmanctl services <service_name>

    You can see full inso about network interface and method. for assign IP address - dhcp. Now change it to manual (static):

    sudo sconnmanctl config <service_name> --ipv4 manual <ip_addr> <netmask> <gateway> --nameservers <dns_server_ip>

    for example from my BBB:

    sudo connmanctl services

    *AR Wired        ethernet_304511dcbaab_cable

    sudo connmanctl config ethernet_304511dcbaab_cable --ipv4 manual --nameservers

    Now check it:

    sudo connmanctl services ethernet_304511dcbaab_cable

     IPv4.Configuration = [ Method=manual, Address=, Netmask=, Gateway= ]

  • edited December 2022

    If you want return dhcp use:

    sudo connmanctl config <service_name> --ipv4 dhcp

  • On my Debian 10.10 I found that connman was not installed.

  • v1.567 and later should install the connman package (if it isn't already).

  • @Jimo, you can always install it manually:

    sudo apt install connman -y

  • edited December 2022

    @rz3dvp Thank you. Yes, I installed it -- sudo apt install connman -y -- But it did not solve my problem. I wonder if there is not an old Network Management System from Debian 8 that needs to be uninstalled as on the Network Admin page it says it has changed to the static ip address. But on the Console Connect when I do a ifconfig it still tells me it is dhcp. Or now I am thinking there are some special settings in /etc/systemd/network/ that VK3Khz says he used. Like:



    Do you have a /etc/systemd/network/ file? What does it looks like?

  • jksjks
    edited December 2022

    With Debian 10.12 running on a BBG I am able to switch between a static ip and DHCP mode on the Ethernet port without any problems. I tried this again just now numerous times. It always worked fine. The Kiwi code uses connman when the Debian version is 10 or greater (instead of the old method of changing the /etc/network/interfaces file).

    About the only thing I can think of is this: Make sure your /etc/network/interfaces file looks like the Debian 10 default below (in case an incorrectly carried-over version from Debian 8 is interacting badly with connman).

    This assumes of course that you followed our original instructions for installing Debian 10 by starting with a fresh copy of Debian 10 and re-installing the Kiwi components from backup. And NOT following other suggestions made in this thread that you can incrementally upgrade D8 to D10 without doing a fresh D10 install. We do not support that idea and will not help you with any problems you encounter as a result.

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    # The primary network interface
    #auto eth0
    #iface eth0 inet dhcp
    # Example to keep MAC address between reboots
    #hwaddress ether DE:AD:BE:EF:CA:FE
    ##connman: ethX static config
    #connmanctl services
    #Using the appropriate ethernet service, tell connman to setup a static IP address for that service:
    #sudo connmanctl config <service> --ipv4 manual <ip_addr> <netmask> <gateway> --nameservers <dns_server>
    ##connman: WiFi
    #connmanctl> tether wifi off
    #connmanctl> enable wifi
    #connmanctl> scan wifi
    #connmanctl> services
    #connmanctl> agent on
    #connmanctl> connect wifi_*_managed_psk
    #connmanctl> quit

  • edited December 2022

    @Jimo yes, you must add comment (#) to strings with eth0 interface on /etc/network/interfaces file, after installed connman:

    sudo nano /etc/network/interfaces

    #auto eth0

    #iface eth0 inet dhcp

    And your interfaces file will look like in John's post.

  • edited May 2023

    Many thanks for your help.

    I do have it all working with following the above instructions.

    I did have to apt update and apt upgrade and apt install connman and then set up the config file.

    It is all running now on Debian 10.13.

    Thanks again


  • Getting ready to install 2 KiwSDRs that I purchased a few years ago.

    They have never been deployed, but for some reason, I wrote their serial number onto the bottom of the case back when I first got them.


    Do I really need to back up anything, or can I just proceed with reflashing Debian 10, and so on ?

    I want to be sure not to lose the serial number or any other software license key that may be in the unit now - that is if there are any...

  • Should be fine to just re-flash them. The serial number is stored in an eeprom that won't be effected by the re-flash. But it also doesn't act as a license key or anything.

  • It seems that the USB IP feature where the Kiwi appears on a Pi to be at is not present on Kiwis running Debian 10. Is that a configurable option on Debian 10 Kiwis?

  • Anyone can give me a SHA256 CRC for the un-zipped image of Debian 10 BBB KiwiSDR (the KiwiSDR_v1.486_BBB_Debian_10.11.img file)?

    I'm almost giving up to upgrade my KiwiSDR to Debian 10 image. After numerous attempts, trying all different micro-SD cards that I have, every time the installation ends with all 4 LEDs flashing. I've finally had to revert back - without any hiccups - to the backup made of the Debian 8 with KiwiSDR 1.461 prior to all these... So my only conclusion, is that somehow the IMG file I've got unzipped is corrupt.

    Or anyone has any other idea I can try?

  • d0c48c33dfd08962d3b4dfd3727a4f6514a4957c021a422e9243e6de1be17ac5 v1.486.img

    676301a5ad0c52417011fd257da9ffa3106ad33af41c8b2273d49d44527e14f3 v1.486.img.xz

Sign In or Register to comment.