Mount an external hard drive with a HFS+ filesystem:
# mount -t hfsplus -o force,rw /dev/sdb2 /mnt/tmp
Porque la memoria es frágil
Mount an external hard drive with a HFS+ filesystem:
# mount -t hfsplus -o force,rw /dev/sdb2 /mnt/tmp
Slackware also provides a version for ARM processors. The installation depends on the ARM implementation and system you are using. Here I'm installing Slackware on an RP3B, to use it as a file server (NFS) and a media server over DLNA.
My main source of information is from Sarpi, this post is just a summary of their "How to ...".
First, download:
- Installer image: sarpi3_64-installer_slackcurrent_03May24_sp1.img.xz
- Slackware: rsync -Pravv --delete slackware.uk::slackwarearm/slackwareaarch64-current .
Then, a micro SD card is used to boot the RP and start the Slackware installer. The Slackware root directory (installation files) is stored in a USB stick.
- Write the installer image to a micro SD card.
- Write the Slackware files to a USB stick.
Alternatively, if you have used the micro SD card to boot the RP before, you can just copy the boot files from the image and delete the old files in your micro SD. This is handy if you are reinstalling Slackware over the same system.
Slackware will be installed in the same micro SD card used to boot the installer. Then, we need to create the partitions to hold the system. That is the boot, swap and root. The boot partition was already created when writing the installer, so you only need to make the other two.
To enable the network interface from the boot and start an SSH server, edit the file 'cmdline.txt' appending the following:
kbd=de nic=e1000:eth0:static:192.168.2.7:24:192.168.2.254
I used a static IP address because my router is slow in assigning it dynamically. So slow that the installer cancels the SSH server start before getting an IP.
When connecting to the installer via SSH, it is common to get the message "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" and the connection is closed. To avoid that, delete the keys for that IP from your ~/.ssh/known_hosts file.
Connect to the RP's SSH server: ssh root@192.168.2.7
# setup
After installation, don't reboot immediately.
At this point, the future root tree of Slackware is mounted in /mnt. So, if for some reason you reboot the RP and the installer boots up again (ups...), you have to mount, manually, the partition containing / (/dev/mmcblk0p3 for example) in /mnt. By doing so, you can continue with the configuration.
Now, remove some unnecessary packages:
# ROOT=/mnt removepkg kernel_armv8 kernel-*-armv8
Next, remove the initramfs file from the boot partition. Mount the boot partition in /mnt/boot and then:
# rm /mnt/boot/initramfs.xz
Install some extra RP exclusive packages:
# ROOT=/mnt installpkg /rpi-extra/kernel* /rpi-extra/sarpi*
Now you can update your config files.
And finally, reboot the system.
References:
https://sarpi.penthux.net
https://alien.slackbook.org/blog/remote-installation-of-slackware-using-ssh/
For each task you need specific tools compatible with the microcontroller you are using.
Writing the code
Although seems obvious, you need a text editor to write your code. A simple text editor will do the job, but a special IDE can make your life easier and will help you to code precise and faster. Pure IDEs for you to choose from are Eclipse or Kdevelop, for example. Usually, you need to install an additional plugin for the architecture you are working with. Another option is to use a complete IDE which includes the complete toolchain in one place, this is the easier and safer option. These are discussed in the next section.
Compile
Here I'm grouping compiling and linking, of course. As far as I know, for the MSP430 you have three free options:
In short, Energia is oriented to Arduino users, it has its own set of functions to simplify common tasks at the expense of flexibility and low-level control. It seems a good option for quick and dirty projects. CCStudio is the official IDE from TI. The offline version is based on Eclipse and they also provide an online IDE with similar capabilities. To use the online version, you need to install a plugin in your browser to provide access to your development platform. The offline version is probably the best and safer option you can take but also take into account that it depends on 32 bits libraries. So, if you use a pure 64 bits distribution you will have to find a way to install the libraries or skip this IDE. In my case, I use Slackware64 without the compat32 packages from AlienBob because I don't need software that requires 32bit compatibility, then I took the third option from the list.
The GCC Compiler for MSP Microcontrollers is free and open source. It doesn't provide a text editor, so you have to find one which fits your preference.
Flashing
Aside the flashing tools provided by the IDE there are a couple of way to load your bits to the microcontroller memory.
...
Debug
A simplest way to debug your code is to use the peripherals of the micro to send signals and messages, but using a real time debugger provides quick access to memory and registers and allows you to dig deeper into the code to find that elusive exception. Energia and CCStudio have their own debugger embedded in the IDE.
Workaround:
The precompiled version of GCC-MSP430 is linked to the libtinfo.so.5 but Slackware64 is using libtinfo.so.6. Compiling the GCC-MSP430 will solve the conflict, but you have to install gdb_agent_console by yourself. The quick and dirty solution is to create a link in /lib64/ to libtinfo.so.6 with the name libtinfo.so.5.
MSPFlasher shows the error "error while loading shared libraries: libmsp430.so: cannot open shared object file: No such file or directory". The error is solved copying the file libmsp430.so in the root of the MSPFlasher installation directory to /usr/lib64/. Creating a link to the file is not sufficient, you need to copy the file.
You have code in a folder and now you want to uploaded it to a Git repository.
sudo pacman -Sy wine wine-mono wine_gecko winetricks samba smbclient libwbclient
sudo pacman -Sy alsa-lib alsa-plugins gnutls libpng libpulse libglvnd libxcomposite libxinerama libxml2
sudo pacman -Sy lib32-alsa-lib lib32-alsa-plugins lib32-gnutls lib32-libpng lib32-libpulse lib32-libglvnd lib32-libxcomposite lib32-libxinerama lib32-libxml2
sudo pacman -Sy gconf gst-plugins-base gst-plugins-base-libs gst-plugins-good gstreamer lcms2 libcanberra libcanberra-pulse libva libva-intel-driver libva-vdpau-driver libvdpau libx11 libxmu libxrandr libxslt libxss libxt libxtst libxv mesa mesa-vdpau mpg123 p11-kit vulkan-intel
sudo pacman -Sy lib32-gconf lib32-gst-plugins-base lib32-gst-plugins-base-libs lib32-gst-plugins-good lib32-gstreamer lib32-lcms2 lib32-libcanberra lib32-libcanberra-pulse lib32-libva lib32-libva-intel-driver lib32-libva-vdpau-driver lib32-libvdpau lib32-libx11 lib32-libxmu lib32-libxrandr lib32-libxslt lib32-libxss lib32-libxt lib32-libxtst lib32-libxv lib32-mesa lib32-mesa-vdpau lib32-mpg123 lib32-p11-kit lib32-vulkan-intel
export WINEARCH=win32 export WINEPREFIX=~/.msoffice wineboot -i
winetricks winecfg
winetricks corefonts
cd ${WINEPREFIX:-~/.wine}/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i" ; done
winetricks dotnet20 gdiplus msxml6 riched20
winetricks winecfg
gdiplus (native) msxml6 (native,builtin) riched20 (native,builtin)
winetricks winecfg
wine ~/Downloads/Setup.X86.en-us_O365ProPlusRetail_********-****-****-****-************_TX_PR_b_32_.exe
cp -iv "${WINEPREFIX:-~/.wine}/drive_c/Program Files/Common Files/Microsoft Shared/ClickToRun/AppvIsvSubsystems32.dll" "${WINEPREFIX:-~/.wine}/drive_c/Program Files/Microsoft Office/root/Office16/AppvIsvSubsystems32.dll" cp -iv "${WINEPREFIX:-~/.wine}/drive_c/Program Files/Common Files/Microsoft Shared/ClickToRun/C2R32.dll" "${WINEPREFIX:-~/.wine}/drive_c/Program Files/Microsoft Office/root/Office16/C2R32.dll"
[HKEY_CURRENT_USER\Software\Wine\Direct2D] "max_version_factory"=dword:00000000
[HKEY_CURRENT_USER\Software\Wine\Direct3D] "csmt"=dword:00000001
[HKEY_CURRENT_USER\Software\Wine\Direct3D] "MaxVersionGL"=dword:00030002
[HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideWithRender"="N"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] "winemenubuilder"="C:\\windows\\system32\\winemenubuilder.exe -r"
export WINEDLLOVERRIDES="winemenubuilder.exe=d"