Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:guide-developer:hw.hacking.first.steps [2018/06/07 16:56] – link fixed tmomasdocs:guide-developer:hw.hacking.first.steps [2023/03/18 23:51] (current) – rephrase to use gender neutral language ryanc
Line 1: Line 1:
 ====== Hardware Hacking First Steps ====== ====== Hardware Hacking First Steps ======
-You bought yourself a new router, and it's nice. You can connect a hard disc to it and then it shares it'content over samba. It even can do torrent. Wow. But then you stumbled over OpenWrt and it'2000 packages you can install just like that. Never mind all the other FOSS software you could compile for it. And you started crying and decided: you **neeeed** OpenWrt on your router. And if your router is already supported, dandy, flash it on and have fun. But if your router is not (yet) supported? Well, then do this:+You bought yourself a new router, and it's nice. You can connect a hard disc to it and then it shares its content over samba. It even can do torrent. Wow. But then you stumbled over OpenWrt and its 2000 packages you can install just like that. Never mind all the other FOSS software you could compile for it. And you started crying and decided: you **neeeed** OpenWrt on your router. And if your router is already supported, dandy, flash it on and have fun. But if your router is not (yet) supported? Well, then do this:
  
 ===== Gain Access ===== ===== Gain Access =====
Line 16: Line 16:
   * [[http://www.tldp.org/LDP/lkmpg/index.html]] //The Linux Kernel Module Programming Guide//   * [[http://www.tldp.org/LDP/lkmpg/index.html]] //The Linux Kernel Module Programming Guide//
   * [[http://lwn.net/Articles/driver-porting/]] you could also check this thread   * [[http://lwn.net/Articles/driver-porting/]] you could also check this thread
-  * [[http://linux.junsun.net/porting-howto/porting-howto.html]] Jun Sun's //Linux MIPS Porting Guide//+  * <del>[[http://linux.junsun.net/porting-howto/porting-howto.html]]</del> [[https://web.archive.org/web/20191031031349/http://linux.junsun.net/porting-howto/porting-howto.html|Link on archive.org]] Jun Sun's //Linux MIPS Porting Guide//
   * [[http://www.win.tue.nl/~aeb/linux/lk/lk.html]] an overview over the history and also technical insights   * [[http://www.win.tue.nl/~aeb/linux/lk/lk.html]] an overview over the history and also technical insights
  
Line 22: Line 22:
  
 ===== Gather Information about Software ===== ===== Gather Information about Software =====
-  * [[docs:techref:bootloader]] This is probably going the first piece of software you are going to notice. But the rest of the system could be of interest as well: +  * [[docs:techref:bootloader]] This is probably going to be the first piece of software you are going to notice. But the rest of the system could be of interest as well: 
-  * Most probably it's a kind of outdated GNU/Linux Kernel with FOSS drivers or with binary only drivers or both. Then you are lucky, because the source code of the Linux Kernel is licensed under the GPLv2 and this constrains the seller to make the modified source code, if he actually bothered to modify anything, and he probably did, available to the customers (and not necessarily to the public) free of charge.+  * Most probably it's a kind of outdated GNU/Linux Kernel with FOSS drivers or with binary only drivers or both. Then you are lucky, because the source code of the Linux Kernel is licensed under the GPLv2 and this constrains the seller to make the modified source code, if they actually bothered to modify anything, and they probably did, available to the customers (and not necessarily to the public) free of charge.
  
 Now maybe the drivers for the components have already been integrated into mainline kernel, which means that a newer kernel should work on this device out of the box. If not, you could continue to use the one, from the manufacturer. So combine this kernel with other FOSS software, you want to run on it... ;-) Now maybe the drivers for the components have already been integrated into mainline kernel, which means that a newer kernel should work on this device out of the box. If not, you could continue to use the one, from the manufacturer. So combine this kernel with other FOSS software, you want to run on it... ;-)
  
-  * In case the manufacturer did not use a Linux Kernel but some kind of *BSD, you're fucked, since the license the *BSD sources are under are not GPL. This particularly means, the usurper  does not have to make source code available. He could, but he doesn't have to. Oh may you have much "fun" with *BSD. :-P+  * In case the manufacturer did not use a Linux Kernel but some kind of *BSD, you're fucked, since the license the *BSD sources are under are not GPL. This particularly means, the usurper  does not have to make source code available. They could, but they don't have to. Oh may you have much "fun" with *BSD. :-P
  
  
Line 37: Line 37:
  
   * An even better example is the [[toh:D-link:DIR-300#flash_layout|DIR-300 flash layout]].   * An even better example is the [[toh:D-link:DIR-300#flash_layout|DIR-300 flash layout]].
-  * Other ones you find here: [[http://wiki.ip-phone-forum.de/software:ds-mod:development:flash#flash_partitionierung]]+  * Other ones you find here: <del>[[http://wiki.ip-phone-forum.de/software:ds-mod:development:flash#flash_partitionierung]]</del> [[https://web.archive.org/web/20160306091048/http://wiki.ip-phone-forum.de/software:ds-mod:development:flash|Link on archive.org]]
  
 ==== Precise Flash Layout ==== ==== Precise Flash Layout ====
Line 48: Line 48:
 ===== Software Development ===== ===== Software Development =====
 Now you want to run you own Software on your device. Now you want to run you own Software on your device.
-Maybe it'hardware has already support in **some projects** +Maybe its hardware has already support in **some projects** 
-or in the **mainline kernel**. If not, then consider adding a new device or a complete new platform to develop software for. Please do not bother developers or potential developers to write code for this. Present the information you gathered, if it interesting enough, somebody is going to do that ;-) Now to write code, the developer needs only some bread and water and a simple text editor, but to test this code, he'going to need the hardware itself. You could donate or maybe just lend the hardware.+or in the **mainline kernel**. If not, then consider adding a new device or a complete new platform to develop software for. Please do not bother developers or potential developers to write code for this. Present the information you gathered, if it is interesting enough, somebody is going to do that ;-) Now to write code, the developer needs only some bread and water and a simple text editor, but to test this code, they're going to need the hardware itself. You could donate or maybe just lend the hardware.
  
 ==== Add Device ==== ==== Add Device ====
Line 60: Line 60:
 ===== Software Development ===== ===== Software Development =====
 The homepage needs no cookies, no javascript, no nothing enabled. It simply works. ;-) It is available under the Creative Commons BY-SA license: The homepage needs no cookies, no javascript, no nothing enabled. It simply works. ;-) It is available under the Creative Commons BY-SA license:
-  * [[http://free-electrons.com/docs/block-drivers/]]  +  * [[http://bootlin.com/doc/legacy/block-drivers/]]  
-  * [[http://free-electrons.com/docs/buildroot/]] +  * [[http://bootlin.com/doc/training/buildroot/]] 
-  * [[http://free-electrons.com/docs/toolchains/]] +  * [[http://toolchains.bootlin.com/]] 
-  * [[http://free-electrons.com/docs/network-drivers/]]+  * [[http://bootlin.com/doc/legacy/network-drivers/]]
  
  • Last modified: 2018/06/07 16:56
  • by tmomas