The error corresponds to the fancy apostrophe (right single quotation mark) in "the system’s owner". That would be 0x92 in legacy single-byte Windows encodings, such as CP1252. In UTF-8 it should be the three byte sequence e2-80-99. Alternatively it could be replaced with a non-fancy ASCII apostroph...

(Weirdly, I did `ls -lut ~/.bash*` and none of them seemed to have been accessed recently!) You cannot rely on access times. Many distros and images mount filesystems with the "noatime" or "relatime" options by default. Especially on an SD card, where small writes are costly, frequent access time u...

dlclose returns and atexit calls function. By that time linux has not yet removed library. No, the function registered via atexit is called during the dlclose, before dlclose returns. By the time dlclose returns, the library and function have been removed from the address space. (POSIX does not gua...

Simpler examples: for i in "abc": print(i) for i in [1,2,3]: print(i) for i in "abc", [1,2,3]: print(i) In the first case there is a string, and for iterates over the characters in the string. In the second case there is a list, and for iterates over the objects in the list. In the third case there ...

The job ran at the correct time, and cron jobs by default use the same timezone as cron itself. The date argument "last month" means the same as "1 month ago", or "now -1 month". The month is subtracted without changing timezone/dst values. (I am not sure if that is really as intended, and the docum...

"man atexit" says that since glibc 2.2.3, functions registered from within a shared library will be called when the library is unloaded. This resolves the potential crash of trying to call them after they have been unmapped. Putting a sleep() between dlclose() and exit(), this is indeed what is happ...

This thread is about porting vanilla Debian (not Raspbian) to the Raspberry Pi. My goal is to provide an armel image that boots on all Pi models, an armhf image that boots on the Pi 2 and 3, and an arm64 image that boots on the Pi 3. I would not call that porting Debian to the Raspberry Pi. I would...

There are standard udev rules that create predictably-named symlinks under /dev/serial/by-id/, based on the USB descriptors, and /dev/serial/by-path/, based on the physical port numbering. You will need to use by-path if the two devices are otherwise identical. The predictable names are a bit cumber...

The key fob you are referring to would be something like RSA SecurID . That is a form of two-factor authentication, where to log in you need to both know the user's password and be in possession of their physical token. The token is designed so that it is impractical to extract the internal secret k...

Write permission on a file allows you to modify the file. To remove or rename the file, you need write access to the containing directory. Similarly, write permission on a directory allows you to create and remove files inside it. To remove the directory itself you need write access to its parent. N...

Installation should be basically: sudo apt update sudo apt install python3-pip sudo pip3 install evdev The type field tells you if it is a key event or something else. The value field indicates whether a key event is up (0), down (1), or hold (2). I do not think there exist symbolic names for those ...

It is not running twice. The way the job is phrased, it requires two bash processes; one to set up the redirections and another to actually run the script. You could probably avoid that, but it is really not a significant cost. A bigger problem is that running cron jobs every single minute will prod...

The images that will boot on Pi1/Zero are still armel, however. Expect them to be noticeably slower than Raspbian for anything that uses floating point. I also wonder whether Pi-specific stuff like the camera and various GPIO libraries will work. RPF/T have not supported armel userspace since the da...

Python's struct module does not have a format character for the C type time_t. This makes it difficult to write a portable format string for parsing the event structure—we need to know whether time_t is 32bit or 64bit. The code in the original blog post will only work on 64bit Linux, and even then i...

I have accidentally deleted “Pi” directory inside ~/home Now I cannot login with user name pi and password “raspberry” You may not be able to log in using the GUI, but you should still be able to login in text mode. Press Ctrl+Alt+F2 to get to a text console: Raspbian GNU/Linux 9 raspberrypi tty2 r...

The Pi/Raspbian use IEEE754 binary floating point representation. The float type has 24 bits of precision, which is equivalent to around 7 significant digits in decimal. The double type has 53 bits, equivalent to 15 digits. A number such as 18736.845869 will be accurate enough if you calculate and s...

How are you building this? There are undefined references to "utostr10" and "close_all", and no obvious entry point. If you have a complete binary, just run it in GDB, and it will tell you what instruction causes the SEGV and what values are in the registers. The Bare metal forum was renamed "Bare m...

But neither Raspbian nor Debian will allow you to use a language and country combination which are not available as a supported locale. POSIX allows you to have a different locale for each category. Depending on exactly what OP intended, it may work to have France as the fallback locale, but overri...

This is a special feature of the shell's "cd" command. It keeps track of the path names used to get to your current directory, and by default it implements ".." by taking off the last component, instead of following the real ".." file on disk. You can also use "cd -P .." to go to the physical parent...

[email protected]:~ $ sudo chmod 777 /dev/ttyAMA0 ACTION=="add", KERNEL=="ttyS0", MODE="0666" Let us not go crazy. 0666 or 0777 is never the right mode for anything. The problem here is that something else is using the device. That is why it is in group "tty" instead of "dialout". Disable serial shell in th...

Standard output is buffered by default. Terminal output is buffered by lines, but output to files is buffered in blocks. This program prints five characters every five seconds, so it will take well over two hours before there is 8KiB in the buffer and Python passes the data to the OS. However, when ...

libjpeg62 was superseded by libjpeg62-turbo, which is almost certainly already installed. However, for building applications you may need the development package: sudo apt install libjpeg62-turbo-dev You do appear to have found a bug with the repositories. In Debian stretch, attempting to install li...

And also a 5 in 6 chance of it not being the same, a 16777215 in 16777216 chance of not being the same for a pi. So if P = 16777215/16777216 then having two Pi's the probability of not being the same is P, three Pi's P*P, for four P*P*P etc, P^(N-1) With each additional selection there is one fewer...