evilkitty
Posts: 474
Joined: Tue Apr 15, 2014 11:39 pm

Upgrading from B+ to 3 B+

Fri Mar 16, 2018 11:15 pm

My 3b+ will be arriving tomorrow
I am running Raspbian: Jessie; Linux: 4.9.35+
Do I need to upgrade to stretch 1st? Do I need a kernel upgrade? Do I need to do a clean install?
If I need to switch to stretch will this get the job done (probably take overnight)?

Code: Select all

sed 's/jessie/stretch/' -i /etc/apt/{sources.list,sources.list.d/raspi.list}
sudo apt-get update && sudo apt-get dist-upgrade -y
My Pi Server: http://imgur.com/a/6xIUI | Thermostat: http://imgur.com/a/4LVnT

User avatar
DougieLawson
Posts: 42312
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK

Re: Upgrading from B+ to 3 B+

Fri Mar 16, 2018 11:19 pm

You can't run Jessie on a 3B+ it won't boot and that Jessie to Stretch upgrade is a monster pain in the tail.

So a faster, quicker, more satisfying option is to download a copy of Raspbian 2018-03-13 or NOOBS 2.7 onto a new SDcard for your new RPi3B+.

With a USB SDcard reader you'll be able to read your data, applications, music and pictures from the old SDCard.
Languages using left-hand whitespace for syntax are ridiculous

DMs sent on https://twitter.com/DougieLawson or LinkedIn will be answered next month.
Fake doctors - are all on my foes list.

The use of crystal balls and mind reading is prohibited.

evilkitty
Posts: 474
Joined: Tue Apr 15, 2014 11:39 pm

Re: Upgrading from B+ to 3 B+

Sat Mar 17, 2018 12:43 am

*Jessie lite
I think this is every package i need to add
apt-cacher-ng pound lirc mpd mpc unattended-upgrades php php-cli apache2 libapache2-mod-php php-json php-gd php-curl php-mcrypt php-mysql php-getid3 mgetty curl locate tree wakeonlan zip iperf mariadb-server mpstat jq sysstat git python-dev python-pip mpg321 heirloom-mailx
soo many configs to redo...
Does anyone know if the python wiringpi still works on the 3B+

I was wondering how much stuff there was to upgrade...

Code: Select all

pi@raspberrypi:~ $ sudo apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... The following packages were automatically installed and are no longer required:
  g++-4.9 libavcodec56 libavformat56 libavresample2 libavutil54 libbind9-90 libcloog-isl4 libdirectfb-1.2-9 libdnet libdns100
  libftdi1 libgphoto2-port10 libisc95 libisccc90 libisccfg90 libisl10 libjim0.75 libjpeg8 liblircclient0 liblua5.1-0
  liblwres90 libntdb1 libopenjpeg5 liborc-0.4-0 libperl4-corelibs-perl libpng-tools libpng12-dev libpython3.4-minimal
  libpython3.4-stdlib libregexp-common-perl libresid-builder0c2a libschroedinger-1.0-0 libsidplay2 libsidutils0 libslp1
  libstdc++-4.9-dev libwebp5 libwebpdemux1 libwebpmux1 libwildmidi1 libx264-142 python-chardet python-colorama python-distlib
  python-html5lib python-ndg-httpsclient python-openssl python-requests python-support python-urllib3 python-webencodings
  python3.4 python3.4-minimal zlib1g-dev
Use 'apt-get autoremove' to remove them.
Done
The following packages will be REMOVED:
  libadplug-2.2.1-0 libbinio1ldbl libcwidget3 libfreetype6-dev libnfs4 libsigc++-2.0-0c2a mariadb-client-10.0
  mariadb-client-core-10.0 mariadb-server-10.0 mariadb-server-core-10.0 module-init-tools perl-modules
The following NEW packages will be installed:
  bsd-mailx busybox cpp-6 dirmngr distro-info-data g++-6 galera-3 gawk gcc-6 gcc-6-base gnupg-agent gnupg-l10n
  initramfs-tools-core keyutils libaacs0 libadplug-2.2.1-0v5 libapparmor1 libapt-inst2.0 libapt-pkg5.0 libarchive13 libasan3
  libassuan0 libavcodec57 libavformat57 libavutil55 libb-hooks-endofscope-perl libbabeltrace-ctf1 libbabeltrace1 libbdplus0
  libbind9-140 libbinio1v5 libbluray1 libboost-filesystem1.62.0 libboost-iostreams1.62.0 libboost-system1.62.0 libc-l10n
  libcairo2 libcc1-0 libchromaprint1 libclass-method-modifiers-perl libclass-xsaccessor-perl libcpan-changes-perl
  libcwidget3v5 libdata-perl-perl libdevel-caller-perl libdevel-globaldestruction-perl libdevel-lexalias-perl libdns-export162
  libdns162 libdrm-freedreno1 libdw1 libexporter-tiny-perl libfastjson4 libfdisk1 libfftw3-single3 libfile-slurp-perl
  libftdi1-2 libgcc-6-dev libgetopt-long-descriptive-perl libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgnutls30
  libgphoto2-port12 libhogweed4 libicu57 libidn2-0 libimport-into-perl libio-stringy-perl libip4tc0 libip6tc0 libiptc0
  libisc-export160 libisc160 libisccc140 libisccfg140 libisl15 libjemalloc1 libjim0.76 libjq1 libksba8 libldap-common
  liblirc-client0 liblirc0 liblockfile-bin liblockfile1 liblognorm5 liblua5.2-0 liblwres141 liblz4-1 liblzo2-2 libmagic-mgc
  libmariadbclient18 libmnl0 libmodule-implementation-perl libmodule-load-conditional-perl libmodule-runtime-perl libmoo-perl
  libmoox-handlesvia-perl libnamespace-autoclean-perl libnamespace-clean-perl libnetfilter-conntrack3 libnettle6 libnfs8
  libnghttp2-14 libnpth0 libonig4 libopenjp2-7 libopenmpt0 libpackage-stash-perl libpackage-stash-xs-perl libpadwalker-perl
  libparams-classify-perl libparams-validate-perl libpath-tiny-perl libperl5.24 libpixman-1-0 libpng16-16 libpod-markdown-perl
  libportaudio2 libprocps6 libpsl5 libpython-all-dev libpython3.5 libpython3.5-minimal libpython3.5-stdlib libreadline7
  librole-tiny-perl libseccomp2 libshine3 libsidplayfp4 libsigc++-2.0-0v5 libsigsegv2 libsnappy1v5 libsndio6.1 libssh-gcrypt-4
  libssl1.0.2 libssl1.1 libstdc++-6-dev libstrictures-perl libsub-exporter-progressive-perl libsub-identify-perl
  libsub-name-perl libswresample2 libtry-tiny-perl libtwolame0 libtxc-dxtn-s2tc libtype-tiny-perl libtype-tiny-xs-perl
  libunicode-utf8-perl libunistring0 libva-drm1 libva-x11-1 libvariable-magic-perl libvdpau-va-gl1 libvdpau1 libvpx4 libwebp6
  libwebpdemux2 libwebpmux2 libwildmidi2 libx264-148 libx265-95 libxapian30 libxcb-glx0 libxcb-render0 libxcb-shm0 libxdamage1
  libxfixes3 libxrender1 libxtables12 libxxf86vm1 libyaml-0-2 libzvbi-common libzvbi0 linux-base mariadb-client-10.1
  mariadb-client-core-10.1 mariadb-server-10.1 mariadb-server-core-10.1 mesa-vdpau-drivers perl-modules-5.24
  perl-openssl-defaults php-common pinentry-curses publicsuffix python-all python-all-dev python-cffi-backend python-crypto
  python-cryptography python-dbus python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt
  python-pip-whl python-secretstorage python-webencodings python-xdg python3-ptyprocess python3-yaml python3.5
  python3.5-minimal rfkill s-nail socat vdpau-driver-all xxd
The following packages will be upgraded:
  acl adduser alsa-utils apache2 apache2-bin apache2-data apache2-utils apt apt-cacher-ng apt-listchanges apt-utils aptitude
  aptitude-common avahi-daemon base-files base-passwd bash bash-completion bind9-host binutils bluez bluez-firmware
  bsdmainutils bsdutils build-essential bzip2 ca-certificates cifs-utils console-setup console-setup-linux coreutils cpio cpp
  cpp-4.9 crda cron cups-common curl dash dbus debconf debconf-i18n debconf-utils debianutils device-tree-compiler dh-python
  dhcpcd5 diffutils dmidecode dmsetup dosfstools dphys-swapfile dpkg dpkg-dev e2fslibs e2fsprogs ed fake-hwclock fakeroot
  fbset file findutils firmware-atheros firmware-brcm80211 firmware-libertas firmware-realtek fontconfig-config
  fonts-dejavu-core g++ g++-4.9 gcc gcc-4.8-base gcc-4.9 gcc-4.9-base gdb gdbserver geoip-database gir1.2-glib-2.0 git git-man
  gnupg gpgv grep groff-base gzip heirloom-mailx hostname ifupdown info init init-system-helpers initramfs-tools initscripts
  insserv install-info iperf iproute2 iptables iputils-ping isc-dhcp-client isc-dhcp-common iso-codes iw jq kbd
  keyboard-configuration klibc-utils kmod less libacl1 libaio1 libalgorithm-c3-perl libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libao-common libao4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libarchive-extract-perl libasan1 libasound2 libasound2-data libasyncns0 libatomic1 libaudio-scrobbler-perl
  libaudiofile1 libaudit-common libaudit1 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7 libblkid1
  libbsd0 libbz2-1.0 libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libcap-ng0 libcap2 libcap2-bin libcdio-cdda1
  libcdio-paranoia1 libcdio13 libcgi-fast-perl libcgi-pm-perl libclass-c3-perl libclass-c3-xs-perl libcloog-isl4 libcomerr2
  libconfig-inifiles-perl libcpan-meta-perl libcryptsetup4 libcups2 libcurl3 libcurl3-gnutls libdata-optlist-perl libdb5.3
  libdbd-mysql-perl libdbi-perl libdbus-1-3 libdbus-glib-1-2 libdebconfclient0 libdevmapper1.02.1 libdirectfb-1.2-9
  libdpkg-perl libdrm-amdgpu1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libelf1 libencode-locale-perl liberror-perl
  libestr0 libevent-2.0-5 libexpat1 libexpat1-dev libfaad2 libfakeroot libfcgi-perl libffi6 libfile-fcntllock-perl libflac8
  libfluidsynth1 libfont-afm-perl libfontconfig1 libfreetype6 libftdi1 libgcc-4.9-dev libgcc1 libgcrypt20 libgd3 libgdbm3
  libgeoip1 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libgme0 libgmp10 libgnutls-openssl27 libgomp1 libgpg-error0
  libgphoto2-6 libgphoto2-l10n libgssapi-krb5-2 libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl
  libhtml-template-perl libhtml-tree-perl libhttp-message-perl libice6 libid3tag0 libident libidn11 libieee1284-3
  libio-socket-ssl-perl libiso9660-8 libiw30 libjack-jackd2-0 libjpeg62-turbo libk5crypto3 libkeyutils1 libklibc libkmod2
  libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 libldb1 liblircclient0 liblist-moreutils-perl libllvm3.9
  liblocale-gettext-perl liblogging-stdlog0 libltdl7 liblua5.1-0 libluajit-5.1-common liblzma5 libmagic1 libmailtools-perl
  libmikmod3 libmms0 libmodplug1 libmodule-build-perl libmodule-pluggable-perl libmodule-signature-perl libmount1 libmp3lame0
  libmpc3 libmpcdec6 libmpdec2 libmpfr4 libmpg123-0 libncurses5 libncursesw5 libnet-http-perl libnet-smtp-ssl-perl
  libnet-ssleay-perl libnewt0.52 libnfsidmap2 libnih-dbus1 libnih1 libnl-3-200 libnl-genl-3-200 libnss-mdns libntdb1
  libopenal-data libopenal1 libopenjpeg5 libopts25 libopus0 liborc-0.4-0 libp11-kit0 libpackage-constants-perl libpam-modules
  libpam-modules-bin libpam-runtime libpam-systemd libpam0g libparams-util-perl libparted2 libpcre3 libpcsclite1
  libperl4-corelibs-perl libpipeline1 libplymouth4 libpng12-0 libpng12-dev libpod-latex-perl libpod-readme-perl libpulse0
  libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib
  libpython3.4-minimal libpython3.4-stdlib libqdbm14 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0
  libreadline5 libreadline6 libregexp-common-perl libresid-builder0c2a libroar2 librtmp1 libsane libsane-common libsane-extras
  libsane-extras-common libsasl2-2 libsasl2-modules libsasl2-modules-db libsdl1.2debian libselinux1 libsemanage-common
  libsemanage1 libsensors4 libsepol1 libsidplay2 libsidutils0 libslang2 libslp1 libsm6 libsmartcols1 libsmbclient libsndfile1
  libsoftware-license-perl libsoxr0 libsqlite3-0 libss2 libssh2-1 libstdc++-4.9-dev libstdc++6 libsystemd0 libtalloc2
  libtasn1-6 libtdb1 libterm-readkey-perl libterm-ui-perl libtevent0 libtext-charwidth-perl libtext-iconv-perl
  libtext-soundex-perl libtext-wrapi18n-perl libtheora0 libtiff5 libtinfo5 libtirpc1 libubsan0 libudev1 libupnp6 liburi-perl
  libusb-0.1-4 libusb-1.0-0 libustr-1.0-1 libuuid1 libv4l-0 libv4l2rds0 libv4lconvert0 libva1 libvorbis0a libvorbisenc2
  libvorbisfile3 libwavpack1 libwbclient0 libwildmidi-config libwrap0 libwww-perl libx11-6 libx11-data libx11-xcb1
  libxcb-dri2-0 libxcb-dri3-0 libxcb-present0 libxcb-sync1 libxcb1 libxdmcp6 libxi6 libxml2 libxmuu1 libxpm4 libxshmfence1
  libxtst6 libxvidcore4 libzzip-0-13 linux-libc-dev lirc locales locate login logrotate lsb-base lsb-release lsof lua5.1
  luajit make man-db manpages manpages-dev mariadb-common mariadb-server memtester mesa-va-drivers mgetty mime-support mount
  mpc mpd multiarch-support mysql-common nano ncdu ncurses-base ncurses-bin ncurses-term net-tools netbase netcat-openbsd
  nfs-common ntp openresolv openssh-client openssh-server openssh-sftp-server openssl parted passwd perl perl-base php-getid3
  pi-bluetooth pkg-config plymouth pound procps psmisc python python-apt python-apt-common python-chardet python-colorama
  python-dev python-distlib python-html5lib python-minimal python-ndg-httpsclient python-openssl python-pip
  python-pkg-resources python-pyasn1 python-requests python-rpi.gpio python-setuptools python-six python-talloc python-urllib3
  python-wheel python2.7 python2.7-dev python2.7-minimal python3 python3-apt python3-dbus python3-gi python3-minimal
  python3-pexpect python3-pil python3-reportlab python3-reportlab-accel python3.4 python3.4-minimal raspberrypi-bootloader
  raspberrypi-kernel raspberrypi-net-mods raspberrypi-sys-mods raspi-config raspi-copies-and-fills readline-common rename
  rpcbind rsync rsyslog samba-common samba-libs sane-utils sed sensible-utils sgml-base shared-mime-info ssh ssl-cert startpar
  strace sudo sysbench sysstat systemd systemd-sysv sysv-rc sysvinit-utils tar tasksel tasksel-data tcpd telnet traceroute
  tree triggerhappy tzdata ucf udev unattended-upgrades unzip update-inetd usb-modeswitch usb-modeswitch-data usbutils
  util-linux v4l-utils va-driver-all vim-common vim-tiny vorbis-tools wget whiptail whois wireless-regdb wireless-tools
  wpasupplicant x11-common xkb-data xml-core xz-utils zip zlib1g zlib1g-dev
550 upgraded, 211 newly installed, 12 to remove and 0 not upgraded.
Need to get 389 MB of archives.
After this operation, 481 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
My Pi Server: http://imgur.com/a/6xIUI | Thermostat: http://imgur.com/a/4LVnT

User avatar
DougieLawson
Posts: 42312
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK

Re: Upgrading from B+ to 3 B+

Sat Mar 17, 2018 1:05 am

I don't know if anyone has tested "python wiringPi" as it's not supported by Drogon (aka Gordon Henderson).

The biggest pain with Jessie to Stretch is all the config files you've changed get a prompt "Do you want your config or the installer's" which needs a Y/N entered on the keyboard. Your upgrade stops waiting for that reply.
Languages using left-hand whitespace for syntax are ridiculous

DMs sent on https://twitter.com/DougieLawson or LinkedIn will be answered next month.
Fake doctors - are all on my foes list.

The use of crystal balls and mind reading is prohibited.

User avatar
bensimmo
Posts: 5801
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Upgrading from B+ to 3 B+

Sat Mar 17, 2018 9:10 am

I'd go fresh SD card method.

- my Jessie to stretch on various cards to never quite worked well it would run, but stuff didn't behave as it should.
Always niggles here and there.
They recommend fully updating Jessie first and then going to Stretch (the way I did it and on a 3B was a long job, on a B it'll be longer especially with all the questions stopping it along the route.


- you can leave to old PiB running while you setup the new one, maybe even improving the setup.

You then have two Pi to use :-) one for backup.

Technically you should be able to
rpi-update and make Jessie bootable on Pi3+ (assume you didn't use NOOBs to set it up.).
It is unsupported and will not be supported either.
But was mention by the Pi Team.

evilkitty
Posts: 474
Joined: Tue Apr 15, 2014 11:39 pm

Re: Upgrading from B+ to 3 B+

Sat Mar 17, 2018 12:15 pm

I think i am gonna grab my b board, unless i do not get a chance and my new board arrives and start configuring it and hope my spare re-capped 2A (the ones the pihut sells) supplies can run it headless without overheating the transformer
i do have 2 wires i need to build so probably use the 3b for setup then backup and clone the install to my 32gb card
EDIT: does /etc/rc.local still work in stretch out of the box?
edit:2 yes it does
Unexpected Pit falls i found:
apache2's systemd configs has a private tmp setting i had to disable (I have a folder in /tmp that holds frequently changing files)
/etc/systemd/system/multi-user.target.wants/apache2.service
also i could not figure how to get rid of a 403 error with using a folder in /tmp as a documentRoot in apache, ended up making a /var/www/html/tmp folder and making a bind mount point
installed ownclound 10 (had 9 on other card)
10 does not support client 2.1.1
found override feature:
in config/config.php i can set 'minimum.supported.desktop.version' to '2.1.0' so i can use 2.1.1

cpu runs a lot hotter +10c over my 700mhz b+ board, but so much faster, need to adjust fan temp control for new idle temperature
My Pi Server: http://imgur.com/a/6xIUI | Thermostat: http://imgur.com/a/4LVnT

robocoder
Posts: 3
Joined: Thu Mar 22, 2018 10:03 pm

Re: Upgrading from B+ to 3 B+

Thu Mar 29, 2018 8:59 pm

I've made some progress on this, but wlan0 still doesn't come up.

Here's what I did:
1. Updated my old kernel to 9.4.80-v7+.
2. Copied most of the files(*.dat, *.dtb, *.dtbo, *.elf) in the latest raspian boot partition to the jessie sdcard boot partition.
3. Copied /lib/firmware from the latest raspian to my old rootfs.

I end up with an image that boots and seems to be mostly working. I'm still trying to figure out why wlan0 doesn't come up.
This sdcard image seems to work 100% on a 3 B.

Question: what driver is used for wlan0 on the 3 B+? What chipset?

dmesg doesn't seem to provide many clues, except that wlan0 is not showing up in the output.

User avatar
DougieLawson
Posts: 42312
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK

Re: Upgrading from B+ to 3 B+

Thu Mar 29, 2018 9:02 pm

It needs new firmware.

You'll need to re-install firmware-brcm80211 which isn't available on Jessie and isn't supported on Jessie.
Languages using left-hand whitespace for syntax are ridiculous

DMs sent on https://twitter.com/DougieLawson or LinkedIn will be answered next month.
Fake doctors - are all on my foes list.

The use of crystal balls and mind reading is prohibited.

robocoder
Posts: 3
Joined: Thu Mar 22, 2018 10:03 pm

Re: Upgrading from B+ to 3 B+ (Works now!)

Thu Mar 29, 2018 9:49 pm

Well, the RPI 3 B+ hardware seems to be completely working with jessie now. As it turns out, I had NOT copied /lib/firmware, like I thought. Once I did that, wlan0 came up. So, I'm running jessie with kernel 4.9.80-v7+, most of the boot partition from stretch, and /lib/firmware from stretch, like I described earlier and it all seems to be working!

Of course as others have pointed out, this is not strictly supported as a valid configuration, and it's hard to do without a Linux laptop and sdcard reader. Also, I haven't tested this much, so your mileage may vary.

Return to “Raspberry Pi OS”