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
Formatting a Micro SD Card with FAT32 Using gparted on Ubuntu Preparing a clean SD card for NOOBS using gparted on Ubuntu Linux Vivek Bhadra…
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!
Cross Compiling a Kernel Driver for Raspberry Pi 3 on Ubuntu Finding the exact kernel version, downloading the toolchain, and compiling a .ko for Pi…
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: [code language="bash"] make…
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 [code language="bash"] git log --pretty=format:"%h%x09%an%x09%ad%x09%s" [/code] Adding it to the bash script [code language="bash"] echo "alias gitl='git log --pretty=format:"%h%x09%an%x09%ad%x09%s"'" >> ~/.bashrc source ~/.bashrc…
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…
A Clean Git Workflow: Private Branches, Squash, and Rebase How to stay in sync with mainline without merge noise, and push clean single commits for…
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: [code language="bash"] $…
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
This guide addresses connecting FileZilla to an Ubuntu VM in VirtualBox, highlighting issues with Bridge mode preventing IP assignment from the router. It describes switching to NAT mode for IP allocation while noting that initiating connections fails. The solution involves setting up port forwarding in VirtualBox to enable SFTP access.
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: [code language="bash"] vbhadra@vbhadra-VirtualBox:~$ ps aux | grep ssh vbhadra 1702 0.0 0.0 4088…
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: [code language="bash"] vbhadra@vbhadra-VirtualBox:~$ sudo…
Using apt-get install Use the below command on your ubuntu terminal: [code language="css"] $ sudo apt-get install git [/code] Installation from source code But at…
Integrating a custom device driver into a Linux reference tree.
This post explains how to create a userspace C program as a Buildroot package that tests an existing kernel module. It details steps including creating package directories and files, defining dependencies, and populating configuration files. The process includes setting installation commands and proper source code structure for successful compilation and deployment.
∞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 [code language="bash"] git config --global user.name "Vivek Bhadra" --> configuring git with the user name git config --global user.email "vibhadra@xxxx.com"…
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.
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…
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.