If you're looking for a reliable and user-friendly Git repository, GitHub is my go-to choice. It’s free to use unless you need private repositories, which…
Continue reading → Setting Up Git for Windows: A Step-by-Step Guide
∞Linux & Kernel Development
Deep-dive articles on Linux internals, kernel architecture, system calls, device drivers, debugging tools, and low-level OS behaviour. Designed for engineers who work close to the metal in systems programming, kernel tuning, or Linux-based product development.
Upgrade your STM32MP1's WiFi driver effortlessly with this comprehensive guide. Learn how to replace the outdated driver with an updated NXP version using Buildroot. Discover step-by-step instructions for obtaining the NXP WiFi driver source code, configuring it for your target, and integrating it into Buildroot. With clear explanations and helpful tips, this blog post simplifies the process, ensuring smooth implementation. Get ready to enjoy improved performance with your newly compiled NXP WiFi kernel module!
Recently, I found myself working with a cellular USB dongle on an embedded Linux system. I've previously documented my experience integrating an LTE device, the…
Continue reading → Setting Up Data Connection with SORACOM Onyx LTE USB Modem on Linux
Recently I have started playing around a bit with Windows PCs. I needed to add a Microsoft KM-Loopback adapter on a Virtual Windows 10 Enterprise.…
Continue reading → How to add Microsoft KM Loopback adapter in Windows 10
Easy way to install a python module in Anaconda
Handling large file git git. Git LFS is for supporting large files which are bigger than Git's recommended 50MB file size. You cannot push these files to your repository unless you have installed Git-LFS. This post describes the steps involved how to install Git-LFS on a Windows 10 machine.
virtualenv creates a virtual python environment inside a project folder of your choice. This enables your to install python packages within the virtual python environment without even having any admin rights on that particular machine. This makes the environment extremely flexible for developers.
Unlock seamless connectivity with our comprehensive guide to setting up your FONA module on the SPRESENSE using the Arduino FONA library. This blog post dives into troubleshooting tips for when your serial prompt stalls at “#updater,” a common sign that your firmware needs an update. Whether you're a seasoned developer or a maker just starting out, follow our step-by-step instructions to flash, update, and optimise your setup for reliable performance and enhanced project success.
In one of the previous posts I have described Bringing up Rasberry Pi 3 with NOOBS. But after I brought up the Raspberry Pi (ver…
Continue reading → How to replace the Kernel image in NOOBS with your custom Kernel
Bring up Raspberry Pi To bring up your Raspberry Pi (my Pi is version 3 B) please follow the below link: How to bring up…
Continue reading → Integrating LTE Device EM7565 into Raspberry Pi 3
For formatting the micro SD card I usually use the gparted utility in Ubuntu. Format the micro SD with FAT 32 filesystem format. You need…
Continue reading → Format a micro SD card using gparted utility
How to bring up a Raspberry Pi version 3 B hardware with NOOBS (Raspbian).
Encountering 'Unknown Symbol' errors while loading the GobiSerial module on Raspberry Pi? This in-depth guide walks you through debugging missing kernel symbols, manually loading required modules, and properly configuring dependencies using depmod and modprobe for a clean and persistent fix. Learn how to resolve LTE driver issues with Sierra Wireless EM7565 on RPi effortlessly!
Getting Rasberry Pi up and running To bring up your Raspberry Pi (ver 3 B) with NOOBS follow the instructions here. Find the kernel version…
I was recently working with something which required me to build a code base and flash it into the board (hw) and then once that…
Continue reading → How to pipe one bash command output to another within a python script
If you are working with nuttx kernel you might have issues trying to bring up the kernel menuconfig with the below command: I had to…
Continue reading → nuttx kernel make menuconfig error in Ubuntu
I had written a blog on how to integrate a custom driver into Linux kernel tree previously here. Integrating a custom driver in nuttx kernel is pretty similar. But writing this down would probably be a good idea for any future reference.
Git log Adding it to the bash script From now on you can type: and see the formatted git log, change the format as you…
Stop Ubuntu going into suspended mode Disable suspend $ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target Created symlink /etc/systemd/system/sleep.target → /dev/null. Created symlink /etc/systemd/system/suspend.target →…
Continue reading → General Linux developer’s tips and tricks
Install the arduino IDE 1. https://www.arduino.cc/en/Main/Software/ 2. Select Linux 64 bit 3. Click Just Download Unzip the downloaded file as below: vbhadra@jupiter:~/Downloads$ tar -xf arduino-1.8.10-linux64.tar.xz…
Time to time we have to work on source code which are downloaded from a git repository, modify the code, implement the functionality, test it,…
Recently my apt-get install didn't work in Ubuntu 10.04 and I couldn't spend time to fix the source list when it didn't work straight forward.…
If you're looking for a reliable and user-friendly Git repository, GitHub is my go-to choice. It’s free to use unless you need private repositories, which…
Continue reading → Setting Up Git for Windows: A Step-by-Step Guide
∞Sometimes you may want to take a snapshot of the current state of your virtual machine (in my case Ubuntu Linux) so that you can revert back to it if anything goes wrong in the virtual machine. The feature in VirtualBox which helps in this is called a snapshot. A snapshot is basically a backup of your virtual machine in its current state.
Problem Description Suppose you have a local GIT repository where dev-stable-topic is the development branch and time to time the releases are made to…
Merge Conflict Often you will encounter merge conflicts while doing rebase operation as described above. Here, is a example merge conflict error: The above lines…
As part of iot application development for IoT I had to play around with the SSL connection establishment with the remote mqtt servers. The below…
Continue reading → How to publish a topic with mqtt broker running on iot.eclipse.org server
I was facing an issue recently and it is like this. I run a Ubuntu Linux Virtual Machine on a Windows guest. Because of my…
I was trying to connect to a newly installed Ubuntu Linux version 12.04 using FileZilla but the application kept on timing out. This can happen…
Continue reading → Why cannot connect to linux machine using FileZilla (sftp mode)?
Check if sshd service is running in Ubuntu with the below command: The above command and their output shows there is no sshd service running…
Continue reading → How to install ssh service in Ubuntu Linux (12.04)
I was facing the issue while trying to connect to a newly installed Ubuntu 12.04 running on a Virtual box. I use FileZilla a lot…
Continue reading → Why cannot connect to Ubutnu linux machine using Filezilla (ftp)?
This may be very simple but to keep things handy the below will install ftp service in you Ubutu Linux machine: This has been tested…
Using apt-get install Use the below command on your ubuntu terminal: Installation from source code But at times you want to install a particular version…
Integrating a custom device driver into a Linux reference tree.
In the earlier post I have explained how to add a kernel module as a new buildroot package. You can check that post here: In…
Continue reading → How to create a new package under buildroot
∞The content explains how to integrate an external kernel device driver as a new package in the Buildroot system, named "xyz." It involves creating a directory for the package and two essential files, Config.in and xyz.mk, which define package configuration and build instructions. The Config.in file sets up package options, while xyz.mk specifies module version, site, license, and build commands. Modifications are required in the main Buildroot Config.in file to include the new package, making it visible in the menuconfig. Finally, it outlines necessary adjustments in the source code's top-level Makefile for successful integration.
[/contact-form] You can modify the kernel command line from the below dts file: ~/repos/solaris_src/linux/arch/mips/boot/dts/xyx/xyz.dts chosen { - bootargs = "console=ttyS0,115200n8 loglevel=8 earlycon=uart8250,mmio32,0x1CC40000,115200 rootwait ro"; +…
Let's say I have a python script called my_module.py in the location ~/junk/my_test/script/lib/. The my_module.py has a very trivial function called my_print() which just prints "Hello…
Continue reading → How to import a python script within another python script
This blog describes the steps to use eclipse as your linux kernel source code browser.
This is a demonstration how a python script can be used to automate the running of an external program which takes data file as input. The data file can be spread over differnet folders in the machine. The script goes to the data file location, extracts the name of each file in the folder and then passes the data file to the external binary.
Problem Statement The main mlme processing kernel thread comes out of the wait_for_completion() immediately without waiting for the complete() to be called on the completion…
Using gdb to user space program vbhadra@ubuntu:~$ sudo gdb ./netlinkUser [sudo] password for vbhadra: GNU gdb (Ubuntu 7.9-1ubuntu1) 7.9 Copyright (C) 2015 Free Software Foundation,…
Configure name and email address Initialize a git repo Add file in the repo Commit your changes Checking status of the git repo Removing a…
Run the below script from the top level project directory. Setup Script #!/bin/bash find -type f -iname '*.c' -o -iname '*.cpp' -o -iname '*.h' -o…
The author emphasizes that Vim, especially when used with Cscope and Ctags, is invaluable for navigating large Linux codebases. A guide is provided with steps for effective setup, including database location, exclusion of unnecessary directories, and enabling Cscope navigation in Vim. The focus is on enhancing developer productivity and code management.
This document should come handy for people who are writing C/C++ code in VIM. This is purely my scratch pad. These are the which comes very handy for me at work. Just check out if it works for you as well.