I have been Debian Stretch running on my HP Pavilion 14-ce0000nq laptop since buying it back in April 2019, just before my presence at Oxidizeconf where I presented " How to Rust When Standards Are Defined in C ". Debian Buster (aka Debian 10) was released about 4 months later and I've been postponing the upgrade as my free time isn't what it used to be. I also tend to wait for the first or even…
Update 2019-Jul-27: In the code below my StackVec type was more complicated than it had to be, I had been using StackVec<'a, &'a mut T> instead of StackVec<'a, T> where T: 'a. I am unsure how I ended up making the type so complicated, but I suspect the lifetimes mismatch errors and the attempt to implement IntoIterator were the reason why I made the original mistake . Corrected code accordingly.…
If you need to use a specific version of the rustc compiler instead of the default, the rustup documentation tells you how to do that . First install the desired version, e.g. nightly-2018-01-09 $ rustup install nightly-2018-01-09 info: syncing channel updates for 'nightly-2018-01-09-x86_64-pc-windows-msvc' info: latest update on 2018-01-09, rust version 1.25.0-nightly (b5392f545 2018-01-08) info:…
Intro Cargo does not produce a .map file, and if it does, mangling makes it very unusable. If you're searching for the TLDR, read from "How to generate a map file" on the bottom of the article. Motivation As a person with experience in embedded programming I find it very useful to be able to look into the map file. Scenarios where looking at the map file is important: evaluate if the code changes…
Update 14 December 2018: After the release of stable 1.31.0 (aka 2018 Edition), it is no longer necessary to switch to the nightly channel to get access to thumb7em-none-eabi / Cortex-M4 and Cortex-M7 components. Updated examples and commands accordingly. For more details on embedded development using Rust, the official Rust embedded docs site is the place to go, in particular, you can start with…
I have been driving a System76 Oryx-Pro for some time now. And I am running Ubuntu 16.04 on it. I typically try to avoid polluting global name spaces, so any apps I install from source I tend to install under a versioned directory under ~/opt , for instance, PyCharm Community Edition 2016.3.1 is installed under ~/opt/pycharm-community-2016.3.1 . Today, after Pycharm suggested I install a newer…
Git, VCSes and binary files Git is famous and has become popular even in the enterprise/commercial environments. But Git is also infamous regarding storage of large and/or binary files that change often, in spite of the fact they can be efficiently stored. For large files there have been several attempts to fix the issue, with varying degree of success, the most successful being git-lfs and…
On Windows, in the cmd shell, the color control caracters generated by the Google Repo tool (or its windows port made by ESRLabs ) or git appear as garbage. Unfortunately, the Google Repo tool, besides the fact it has a non-google-able name, lacks documentation regarding its options, so sometimes the only way to find out what is the option I want is to look in the code. To avoid repeatedly look…
I have a system which has 3 distinct HDDs used as physucal volumes for Linux LVM. One logical volume is the root partition and it was initally created as a linear LV (vg0/OS). Since I have PV redundancy, I thought it might be a good idea to convert the root LV from liear to raid1 with 2 mirrors. WARNING: It seems LVM raid1 logicalvolume for / is not supported with grub2, at least not with Ubuntu's…
I wrote this so I won't forget it and for others to find, if confronted with the same issue. I hate Microsoft Office in all its incarnations, but I have to use it at work for various stuff. One of them is maintaining some technical documentation. we now use Office 365 and Office 2013. Since MS Office Word 2013 is not a technical documentation program, some of the support for it is clunky. For…
If you are in a situation where you want to set up a SFTP server in a more secure way, don't want to expose anything from the server via SFTP and do not want to enable SSH login on the account allowed to sftp, you might find the information below useful. What do we want to achive: SFTP server only a specified account is allowed to connect to SFTP nothing outside the SFTP directory is exposed no…
(continuation of Linksys NSLU2 adventures into the NetBSD land passed through JTAG highlands - part 1 ; meanwhile, my article was mentioned briefly in BSDNow Episode 89 - Exclusive Disjunction around minute 36:25 ) Choosing to call RedBoot from a hacked Apex As I was saying in my previous post, in order to be able to automate the booting of the NetBSD image via TFTP, I opted for using a 2nd stage…
About 2 months ago I set a goal to run some kind of BSD on the spare Linksys NSLU2 I had. This was driven mostly by curiosity, after listening to a few BSDNow episodes and becoming a regular listener, but it was a really interesting experience (it was also somewhat frustrating, mostly due to lacking documentation or proprietary code). Looking for documentation on how to install any BSD flavour on…
Some time ago I have embarked on a jurney to install NetBSD on one of my two NSLU2-s. I have ran into all sorts of hurdles and problems which I finally managed to overcome, except one: The NSLU I am using has a standard 20 pin ARM JTAG connector attached to it (as per this page http://www.nslu2-linux.org/wiki/Info/PinoutOfJTAGPort , only TDI, TDO, TMS, TCK, Vref and GND signals), but, although the…
Dnsmasq is a very lightweight server that besides the expected DNS caching functionality, it also offers DHCP and TFTP functionality in a single binary. This makes it very useful if one needs to network boot a system since you can have the TFTP and DHCP part of the setup done easily, and only add NFS for a complete network boot. Add to that that One extra nice thing dnsmasq has is that it can mark…
This is trivial and very useful for embedded code dumps, but in case somebody (including future me) needs this, here it goes: arm-none-eabi-objdump -D -b binary -m arm -EB dump.bin | less The options mean: -D - disassemble -b binary - input file is a raw file -m arm - arm architecture -EB - big endian By default, endianness is assumed to be little endian, or at least that's happened with my…
I was writing in the previous post about Occasional Rsnapshot and how I ended up writing it. Just before releasing v1.2.1 I realized it would make sense Semantic Versioning which, in just a few words means: Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and…
It is almost exactly 1 year and a half since I came up with the idea of having a way of making backups using Rsnapshot automatically triggered by my laptop when I have the backup media connected to my laptop. This could mean connecting a USB drive directly to the laptop or mounting a NFS/sshfs share in my home network. Today I tagged Occasional Rsnapshot the v1.3.0 version, the first released…
I was asked in the previous post why I didn't used the Debian armel port for my NSLU2. My intention was to create a uclibc based system (and a uclibc based toolchain) for my NSLU2. This was not obvious in the post because building the uclibc based toolchain resulted in this error: crossdev armv5-softfloat-linux-uclibceabi [..]…
This is mostly written so I don't forget how to create a custom (Arm) toolchain the Gentoo way (in a Gentoo chroot). I have been a Debian user since 2001, and I like it a lot. Yet I have had my share of problems with it, mostly because due to lack of time I have very little disposition to try to track unstable or testing, so I am forced to use stable. This led me to be a fan of Russ Albery's…
... numpads on laptop keyboards. Just because a very, very, very restricted segment of the population is into accounting or other jobs needing frequent numeric input, almost all laptop manufacturers feel the stupid urge to place a numpad on laptops with screens over 14''. Reasons why a numpad on a laptop is a bad idea : can lead to health issues: it forces the user to assume a bad position in…
Note: This post will probably not be on the liking of those who think free software is always preferable to closed source software, so if you are such a person, please take this article as an invitation to implement better open source alternatives that can realistically compete with the closed source applications I am mentioning here. I am not going to mention here where the open source…
If you ever find yourself in the situation where you have to add a shell script wrapper over a command, but the parameters' quoting gets lost and you end up with the wrong parameters in the wrapped command/tool, you might want to read this post. On my system I have some command line tools which are Windows only and, in order to easily use the same build system as on Windows on my Linux machine I…
Did you ever had the need in a git repository to change to another branch without altering AT ALL the working copy and ever wondered how that's done? Usual use cases might be when you mde some changes to the working copy thinking you were on another branch, or you double-track in git a directory which is also tracked by another VCS (e.g. ClearCase). What you need, in fact, is to update the index…