{"id":2572,"date":"2023-02-08T11:53:31","date_gmt":"2023-02-08T02:53:31","guid":{"rendered":"https:\/\/derrylab.com\/?p=2572"},"modified":"2023-02-08T12:07:40","modified_gmt":"2023-02-08T03:07:40","slug":"how-to-install-the-latest-openwrt-on-arduino-yun","status":"publish","type":"post","link":"https:\/\/blog.derrylab.com\/index.php\/2023\/02\/08\/how-to-install-the-latest-openwrt-on-arduino-yun\/","title":{"rendered":"How to Install the Latest OpenWRT on Arduino Yun"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">By the time I am writing this, this might be the first article that tells you how to install OpenWRT on Arduino Yun because no one talks about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, Arduino Yun is already reached its end of life, and the version history is not well documented in each article so I will write it as clearly as I can.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here I am using the old Arduino Yun. It comes with the 1.1.4 version of the bootloader.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now to update it to the latest OpenWRT what we will need to do is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Update the bootloader to 1.1.5 because 1.1.4 does not support bigger kernel upload by default<\/li>\n\n\n\n<li>Flash the firmware from the latest build of OpenWRT<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Board Development History<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The old version of Yun is able to use the latest OpenWRT. The 1.1.5 bootloader is also available for rev. 2 so I think the Yun rev. 2 is also able to boot the latest OpenWRT.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No need to be afraid of bricking, if you still have the bootloader, everything can be reflashed. Go <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.arduino.cc\/tutorials\/yun-rev2\/yun-u-boot-reflash\" data-type=\"URL\" data-id=\"https:\/\/docs.arduino.cc\/tutorials\/yun-rev2\/yun-u-boot-reflash\" target=\"_blank\">here<\/a> if you need to re-flashing the stock Yun firmware.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Arduino Yun v1 (rev 2 is also compatible but not covered here)<\/li>\n\n\n\n<li>Linux PC (Windows or Mac is also compatible but not covered here)<\/li>\n\n\n\n<li>LAN and MicroUSB cable<\/li>\n\n\n\n<li>Access Point with Internet Connection<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Bootloader Mode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Connect Yun LAN and Micro USB to your PC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open Arduino IDE, and download the bridge library.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select menu <code>Sketch &gt; Include Library &gt; Manage Libraries ...<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Search <code>bridge<\/code> on library manager and install<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"355\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-9.png?resize=549%2C355&#038;ssl=1\" alt=\"\" class=\"wp-image-2582\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-9.png?w=549&amp;ssl=1 549w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-9.png?resize=300%2C194&amp;ssl=1 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Open <code>YunSerialTerminal<\/code> sketch by selecting <code>File &gt; Example &gt; Bridge &gt; YunSerialTerminal<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Upload <code>YunSerialTerminal<\/code>; open the serial monitor and set the baud rate to 115200.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Press <code>enter<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A terminal will show up:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"478\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image.png?resize=753%2C478&#038;ssl=1\" alt=\"\" class=\"wp-image-2573\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image.png?w=753&amp;ssl=1 753w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image.png?resize=300%2C190&amp;ssl=1 300w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Reset Yun by pressing a white button near LEDs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to boot mode quickly, send <code>lin<\/code> (or depending on the message, some bootloaders need <code>ard<\/code>, some only needs to press any character) command into the serial monitor until the bootloader command prompt is shown below<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"563\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-1.png?resize=755%2C563&#038;ssl=1\" alt=\"\" class=\"wp-image-2574\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-1.png?w=755&amp;ssl=1 755w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-1.png?resize=300%2C224&amp;ssl=1 300w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Setting TFTP Server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now let&#8217;s set up the host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure your PC IP connected to Yun is 192.168.1.2 with gateway 192.168.1.1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>You can use any IP here, but if you want to follow me just use the same IP as my configuration<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"533\" height=\"449\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-2.png?resize=533%2C449&#038;ssl=1\" alt=\"\" class=\"wp-image-2575\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-2.png?w=533&amp;ssl=1 533w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-2.png?resize=300%2C253&amp;ssl=1 300w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Install <code>tftp<\/code> server<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install tftpd-hpa<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In my Linux OS, after installing check the <code>tftp<\/code> folder<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cat \/etc\/default\/tftpd-hpa\n# \/etc\/default\/tftpd-hpa\n\nTFTP_USERNAME=\"tftp\"\nTFTP_DIRECTORY=\"\/srv\/tftp\"\nTFTP_ADDRESS=\":69\"\nTFTP_OPTIONS=\"--secure\"\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">in my case it is <code>\/srv\/tftp<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now download this <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/arduino\/yun-go-updater\/releases\/download\/1.2\/yun-go-updater-linux64.tar.gz\" data-type=\"URL\" data-id=\"https:\/\/github.com\/arduino\/yun-go-updater\/releases\/download\/1.2\/yun-go-updater-linux64.tar.gz\" target=\"_blank\">Yun-Go-Updater<\/a>, and extract the bootloader file only:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>u-boot-arduino-lede.bin<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And move it to the <code><code>\/srv\/tftp<\/code><\/code> directory<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ mv u-boot-arduino-lede.bin \/srv\/tftp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then get the latest OpenWRT firmware <a rel=\"noreferrer noopener\" href=\"https:\/\/firmware-selector.openwrt.org\/?version=22.03.3&amp;target=ath79%2Fgeneric&amp;id=arduino_yun\" data-type=\"URL\" data-id=\"https:\/\/firmware-selector.openwrt.org\/?version=22.03.3&amp;target=ath79%2Fgeneric&amp;id=arduino_yun\" target=\"_blank\">here<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the time I am writing this, it is 22.03.3<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-4.png?resize=1024%2C662&#038;ssl=1\" alt=\"\" class=\"wp-image-2577\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-4.png?resize=1024%2C662&amp;ssl=1 1024w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-4.png?resize=300%2C194&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-4.png?resize=768%2C497&amp;ssl=1 768w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-4.png?w=1096&amp;ssl=1 1096w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Put the firmware also in <code>tftp<\/code> folder<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>openwrt-22.03.3-ath79-generic-arduino_yun-squashfs-sysupgrade.bin<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So now the <code>\/srv\/tftp<\/code> contains our bootloader and OpenWRT firmware.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Flashing the Bootloader and OpenWRT Firmware<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After everything is set up then send these commands in Yun serial monitor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>linino&gt; setenv serverip 192.168.1.2;\n\nlinino&gt; setenv ipaddr 192.168.1.1;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Yun is set to 192.168.1.1 and our PC is 192.168.1.2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Send the bootloader to Yun<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tftp 0x80060000 u-boot-arduino-lede.bin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then erase the old bootloader and replace using these commands.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>erase 0x9f000000 +0x40000;\ncp.b $fileaddr 0x9f000000 $filesize;\nerase 0x9f040000 +0x10000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Below is the output<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"445\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-5.png?resize=749%2C445&#038;ssl=1\" alt=\"\" class=\"wp-image-2578\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-5.png?w=749&amp;ssl=1 749w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-5.png?resize=300%2C178&amp;ssl=1 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then we can send the OpenWRT firmware to Yun, erase the previous firmware, and write the OpenWRT<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tftp 0x80060000 openwrt-22.03.3-ath79-generic-arduino_yun-squashfs-sysupgrade.bin;\n\nerase 0x9f050000 +0xE50000;\ncp.b $fileaddr 0x9f050000 $filesize;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Below is the output<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"674\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-6.png?resize=750%2C674&#038;ssl=1\" alt=\"\" class=\"wp-image-2579\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-6.png?w=750&amp;ssl=1 750w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-6.png?resize=300%2C270&amp;ssl=1 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now reset by pressing the white Yun reset button near the LEDs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now we can see the new bootloader and working latest and the most bleeding edge OpenWRT<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"781\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-7.png?resize=686%2C781&#038;ssl=1\" alt=\"\" class=\"wp-image-2580\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-7.png?w=686&amp;ssl=1 686w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-7.png?resize=264%2C300&amp;ssl=1 264w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Press Enter again in the serial monitor to activate the console<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"298\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-8.png?resize=500%2C298&#038;ssl=1\" alt=\"\" class=\"wp-image-2581\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-8.png?w=500&amp;ssl=1 500w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-8.png?resize=300%2C179&amp;ssl=1 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now we have the latest OpenWRT installed on Arduino Yun! \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By default, the wifi is turned off. To access the Yun, run this command to set the Yun IP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ifconfig eth0 192.168.1.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once the IP is set, you can access the OpenWRT web interface on the browser by visiting <code>192.168.1.1<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Connect to your Wifi access point and run <code>opkg update<\/code> to update the package list. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Expand the Storage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are so many packages that you can install but the Yun memory is too small. However, we can expand the storage using <a rel=\"noreferrer noopener\" href=\"https:\/\/openwrt.org\/docs\/guide-user\/additional-software\/extroot_configuration\" target=\"_blank\">extroot<\/a> method.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.arduino.cc\/tutorials\/yun-rev2\/expanding-yun-disk-space\" data-type=\"URL\" data-id=\"https:\/\/docs.arduino.cc\/tutorials\/yun-rev2\/expanding-yun-disk-space\" target=\"_blank\">previous storage expanding steps<\/a> does not work on the newest OpenWRT. So to expand the storage using a microSD card,<a rel=\"noreferrer noopener\" href=\"https:\/\/openwrt.org\/docs\/guide-user\/additional-software\/extroot_configuration\" data-type=\"URL\" data-id=\"https:\/\/openwrt.org\/docs\/guide-user\/additional-software\/extroot_configuration\" target=\"_blank\"> use the OpenWRT instruction<\/a>. Here is the screenshot of the expanded storage size of my Arduino Yun.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"955\" src=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-10.png?resize=958%2C955&#038;ssl=1\" alt=\"\" class=\"wp-image-2587\" srcset=\"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-10.png?w=958&amp;ssl=1 958w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-10.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-10.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/image-10.png?resize=768%2C766&amp;ssl=1 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Have Fun \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By the time I am writing this, this might be the first article that tells you how to install OpenWRT on Arduino Yun because no one talks about it. Also, Arduino Yun is already reached its end of life, and the version history is not well documented in each article so I will write it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2585,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[172,4],"tags":[199,200,18,179,204,36,201,43,203,64,66],"class_list":["post-2572","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware","category-linux","tag-arduino","tag-arduino-yun","tag-development","tag-firmware","tag-latest-openwrt","tag-linux","tag-openwrt","tag-pop-os","tag-storage","tag-tutorial","tag-ubuntu"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/02\/ArduinoYunFront_2.jpg?fit=1600%2C1067&ssl=1","jetpack-related-posts":[{"id":962,"url":"https:\/\/blog.derrylab.com\/index.php\/2022\/05\/31\/how-to-access-som9331-serial-console-in-linux\/","url_meta":{"origin":2572,"position":0},"title":"How to Access SOM9331 Serial Console in Linux","author":"derry","date":"May 31, 2022","format":false,"excerpt":"I got this old hackable mini router board. It comes with OpenWRT but I can't seem to connect this via USB Serial. It turns out that the driver is not installed. Installation is quick but there is a minor change needed in order to build the driver on a recent\u2026","rel":"","context":"In &quot;linux&quot;","block_context":{"text":"linux","link":"https:\/\/blog.derrylab.com\/index.php\/category\/linux\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/05\/81IfBiOdCvL._AC_SL1500_.jpg?fit=1200%2C982&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/05\/81IfBiOdCvL._AC_SL1500_.jpg?fit=1200%2C982&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/05\/81IfBiOdCvL._AC_SL1500_.jpg?fit=1200%2C982&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/05\/81IfBiOdCvL._AC_SL1500_.jpg?fit=1200%2C982&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/05\/81IfBiOdCvL._AC_SL1500_.jpg?fit=1200%2C982&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2538,"url":"https:\/\/blog.derrylab.com\/index.php\/2023\/01\/31\/how-to-install-alfa-awus036nh-driver-for-kali-linux\/","url_meta":{"origin":2572,"position":1},"title":"How to Install Alfa AWUS036NH Driver for Kali Linux","author":"derry","date":"January 31, 2023","format":false,"excerpt":"This wifi adapter is an important weapon for penetration testers due to its feature that supports monitor and packet injection mode on a 2.4Ghz network. However, even if Alfa said it is already supported out of the box in Kali Linux, I found it unstable out of the box. Sometimes\u2026","rel":"","context":"In &quot;Hardware&quot;","block_context":{"text":"Hardware","link":"https:\/\/blog.derrylab.com\/index.php\/category\/hardware\/"},"img":{"alt_text":"Computer desktop","src":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/01\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvZnJ3bGFuX3dpZmlfbmV0d29ya19tb2RlbS1pbWFnZS1reWJjZThvZC5qcGc.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/01\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvZnJ3bGFuX3dpZmlfbmV0d29ya19tb2RlbS1pbWFnZS1reWJjZThvZC5qcGc.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/01\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvZnJ3bGFuX3dpZmlfbmV0d29ya19tb2RlbS1pbWFnZS1reWJjZThvZC5qcGc.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/01\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvZnJ3bGFuX3dpZmlfbmV0d29ya19tb2RlbS1pbWFnZS1reWJjZThvZC5qcGc.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2023\/01\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvZnJ3bGFuX3dpZmlfbmV0d29ya19tb2RlbS1pbWFnZS1reWJjZThvZC5qcGc.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1282,"url":"https:\/\/blog.derrylab.com\/index.php\/2022\/08\/01\/problem-when-building-old-openssl-version-on-the-new-system\/","url_meta":{"origin":2572,"position":2},"title":"Problem When Building Old OpenSSL Version on The New System","author":"derry","date":"August 1, 2022","format":false,"excerpt":"The old OpenSSL seems to have a problem when built using a newer system. I got this problem when compiling OpenSSL 1.1.0f on my Ubuntu 22.04. derry@G14:~\/openssl-1.1.0f$ .\/config -d shared no-asm no-hw Operating system: x86_64-whatever-linux2 \"glob\" is not exported by the File::Glob module Can't continue after import errors at .\/Configure\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/blog.derrylab.com\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/08\/pexels-anamul-rezwan-1145434-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/08\/pexels-anamul-rezwan-1145434-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/08\/pexels-anamul-rezwan-1145434-scaled.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/08\/pexels-anamul-rezwan-1145434-scaled.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/08\/pexels-anamul-rezwan-1145434-scaled.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":120,"url":"https:\/\/blog.derrylab.com\/index.php\/2020\/11\/04\/install-xilinx-in-batch-mode\/","url_meta":{"origin":2572,"position":3},"title":"How to Install Xilinx using Command Line in Four Steps","author":"derry","date":"November 4, 2020","format":false,"excerpt":"I just got some problem with Xilinx 2020.1 installation on my Pop OS. The installer was stuck and gives me an error message: ibndias@shaheen:~\/Downloads$ .\/Xilinx_Unified_2020.1_0602_1208_Lin64.bin Verifying archive integrity... All good. Uncompressing Xilinx Installer............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Exception in thread \"SPLASH_LOAD_MESSAGE\" java.lang.IllegalStateException: no splash screen available at java.desktop\/java.awt.SplashScreen.checkVisible(Unknown Source) at java.desktop\/java.awt.SplashScreen.getBounds(Unknown Source) at java.desktop\/java.awt.SplashScreen.getSize(Unknown\u2026","rel":"","context":"In &quot;linux&quot;","block_context":{"text":"linux","link":"https:\/\/blog.derrylab.com\/index.php\/category\/linux\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":552,"url":"https:\/\/blog.derrylab.com\/index.php\/2022\/03\/15\/how-to-run-linux-on-riscv-in-arty-a7-100t-fpga\/","url_meta":{"origin":2572,"position":4},"title":"How to Run Linux on RISCV in Arty A7-100T FPGA","author":"derry","date":"March 15, 2022","format":false,"excerpt":"It's been tempting for me to try running open-source software on top of open-source hardware. SiFive provides a bitstream for Arty A7 called Freedom, but it seems that the repository is dead now. The other interesting alternative to try is VexRiscv, and everyone keeps posting about Arty A7 35T while\u2026","rel":"","context":"In &quot;linux&quot;","block_context":{"text":"linux","link":"https:\/\/blog.derrylab.com\/index.php\/category\/linux\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/03\/pexels-rone-ferreira-3690005-1-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/03\/pexels-rone-ferreira-3690005-1-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/03\/pexels-rone-ferreira-3690005-1-scaled.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/03\/pexels-rone-ferreira-3690005-1-scaled.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.derrylab.com\/wp-content\/uploads\/2022\/03\/pexels-rone-ferreira-3690005-1-scaled.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":39,"url":"https:\/\/blog.derrylab.com\/index.php\/2020\/03\/30\/install-hangeul-korean-font-support-on-raspberry-pi-4\/","url_meta":{"origin":2572,"position":5},"title":"Install Hangeul\/Korean Font Support on Raspberry Pi 4","author":"derry","date":"March 30, 2020","format":false,"excerpt":"No need to talk, just type: $ sudo apt install ibus ibus-hangul fonts-unfonts-core That's it, now reboot, $ sudo reboot and go to naver.com to check. :)","rel":"","context":"In &quot;linux&quot;","block_context":{"text":"linux","link":"https:\/\/blog.derrylab.com\/index.php\/category\/linux\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/posts\/2572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/comments?post=2572"}],"version-history":[{"count":4,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/posts\/2572\/revisions"}],"predecessor-version":[{"id":2589,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/posts\/2572\/revisions\/2589"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/media\/2585"}],"wp:attachment":[{"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/media?parent=2572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/categories?post=2572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.derrylab.com\/index.php\/wp-json\/wp\/v2\/tags?post=2572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}