├── README.md ├── boot └── COPYING.linux └── debian ├── changelog ├── compat ├── control ├── copyright ├── gen_bootloader_postinst_preinst.sh ├── postinst ├── postrm ├── raspberrypi-kernel-headers.install ├── raspberrypi-kernel.install ├── rules ├── source └── format └── update.sh /README.md: -------------------------------------------------------------------------------- 1 |
2 | We have moved to GitLab! Read this for more information. 3 | 4 | We have recently moved our repositories to GitLab. You can find kernelbakery 5 | here: https://gitlab.com/revolutionpi/kernelbakery 6 | All repositories on GitHub will stay up-to-date by being synchronised from 7 | GitLab. 8 | 9 | We still maintain a presence on GitHub but our work happens over at GitLab. If 10 | you want to contribute to any of our projects we would prefer this contribution 11 | to happen on GitLab, but we also still accept contributions on GitHub if you 12 | prefer that. 13 |
14 | 15 | # Revolution Pi Kernelbakery 16 | 17 | This is a fork of the repository used by the Foundation to build kernel and 18 | firmware packages for the Raspberry Pi: https://github.com/RPi-Distro/firmware 19 | 20 | We use it to build kernels for the Revolution Pi and are providing it here 21 | as a service to our users to allow building custom kernels. The resulting 22 | deb packages serve as drop-in replacements for the Foundation's packages. 23 | Installation with deb packages is cleaner than just copying the kernel and 24 | modules to the bare filesystem. 25 | 26 | Unfortunately the Foundation's repo is huge (currently 5 GByte) as it includes 27 | all their kernels and modules in binary form dating back to 2012. That's why 28 | this repo was stripped of the git history as well as files which can be rebuilt 29 | from the kernel source tree. 30 | 31 | # Intended usage 32 | 33 | This procedure was tested successfully on Debian buster amd64, but YMMV. 34 | Building the kernel with update.sh is idempotent. If it fails, e.g. due to 35 | compiler errors in piControl, just start it afresh. You are also welcome to 36 | ask your questions in our community forum: https://revolutionpi.de/forum/ 37 | 38 | Note that since bullseye armv6 is no longer officially supported and is thus 39 | disabled by default. 40 | 41 | ## Install build tools 42 | 43 | ``` 44 | apt-get install device-tree-compiler 45 | apt-get install build-essential:native debhelper quilt bc 46 | apt-get install bison flex libssl-dev rsync git 47 | ``` 48 | 49 | In addition a cross-compiler needs to be installed. The package depends on 50 | the desired target architecture of the kernel: 51 | 52 | **Packages for 32-bit kernel builds (v6 / v7 / v7l):** 53 | 54 | ``` 55 | apt-get install gcc-arm-linux-gnueabihf 56 | ``` 57 | 58 | **Packages for 64-bit kernel builds (v8):** 59 | 60 | ``` 61 | apt-get install gcc-aarch64-linux-gnu 62 | ``` 63 | 64 | ## Get source code 65 | 66 | > **NOTE:** The repositories are cloned with truncated history, in order to 67 | make fetching faster. If you need the full history, remove `--depth 1` 68 | from the git commands. 69 | 70 | ``` 71 | git clone --depth 1 -b revpi-6.1 https://github.com/RevolutionPi/linux 72 | git clone --depth 1 -b master https://github.com/RevolutionPi/piControl 73 | git clone --depth 1 -b master https://github.com/RevolutionPi/kernelbakery 74 | ``` 75 | 76 | ## Build kernel and packages 77 | 78 | The 32-bit kernel runs on all Revolution Pi devices and is shipped with our 79 | official images. As an alternative a 64-bit kernel can be built, which also 80 | runs on all Revolution Pi devices with the exception of the first Core devices 81 | (based on first generation of Raspberry Pi Compute Module). 82 | 83 | ### Build 32-bit kernel (v6 / v7 / v7l) 84 | 85 | ``` 86 | cd kernelbakery 87 | LINUXDIR=$PWD/../linux PIKERNELMODDIR=$PWD/../piControl debian/update.sh 88 | dpkg-buildpackage -a armhf -b -us -uc 89 | ``` 90 | 91 | > **NOTE:** The source layout of the piControl repository changed after 92 | > `raspberrypi-kernel_1%9.20240205+1-6.1.46-1-revpi11+1` and the sources 93 | > files have been moved to the `src/` folder. Make sure to use the 94 | > correct `PIKERNELMODDIR`! 95 | 96 | To build the kernel for armv6, add `-a armv6`. 97 | 98 | ### Build 64-bit kernel (v8) 99 | 100 | ``` 101 | cd kernelbakery 102 | ARCH=arm64 LINUXDIR=$PWD/../linux PIKERNELMODDIR=$PWD/../piControl debian/update.sh 103 | dpkg-buildpackage -a arm64 -b -us -uc 104 | ``` 105 | 106 | > **NOTE:** The source layout of the piControl repository changed after 107 | > `raspberrypi-kernel_1%9.20240205+1-6.1.46-1-revpi11+1` and the sources 108 | > files have been moved to the `src/` folder. Make sure to use the 109 | > correct `PIKERNELMODDIR`! 110 | -------------------------------------------------------------------------------- /boot/COPYING.linux: -------------------------------------------------------------------------------- 1 | 2 | NOTE! This copyright does *not* cover user programs that use kernel 3 | services by normal system calls - this is merely considered normal use 4 | of the kernel, and does *not* fall under the heading of "derived work". 5 | Also note that the GPL below is copyrighted by the Free Software 6 | Foundation, but the instance of code that it refers to (the Linux 7 | kernel) is copyrighted by me and others who actually wrote it. 8 | 9 | Also note that the only valid version of the GPL as far as the kernel 10 | is concerned is _this_ particular version of the license (ie v2, not 11 | v2.2 or v3.x or whatever), unless explicitly otherwise stated. 12 | 13 | Linus Torvalds 14 | 15 | ---------------------------------------- 16 | 17 | GNU GENERAL PUBLIC LICENSE 18 | Version 2, June 1991 19 | 20 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 21 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22 | Everyone is permitted to copy and distribute verbatim copies 23 | of this license document, but changing it is not allowed. 24 | 25 | Preamble 26 | 27 | The licenses for most software are designed to take away your 28 | freedom to share and change it. By contrast, the GNU General Public 29 | License is intended to guarantee your freedom to share and change free 30 | software--to make sure the software is free for all its users. This 31 | General Public License applies to most of the Free Software 32 | Foundation's software and to any other program whose authors commit to 33 | using it. (Some other Free Software Foundation software is covered by 34 | the GNU Library General Public License instead.) You can apply it to 35 | your programs, too. 36 | 37 | When we speak of free software, we are referring to freedom, not 38 | price. Our General Public Licenses are designed to make sure that you 39 | have the freedom to distribute copies of free software (and charge for 40 | this service if you wish), that you receive source code or can get it 41 | if you want it, that you can change the software or use pieces of it 42 | in new free programs; and that you know you can do these things. 43 | 44 | To protect your rights, we need to make restrictions that forbid 45 | anyone to deny you these rights or to ask you to surrender the rights. 46 | These restrictions translate to certain responsibilities for you if you 47 | distribute copies of the software, or if you modify it. 48 | 49 | For example, if you distribute copies of such a program, whether 50 | gratis or for a fee, you must give the recipients all the rights that 51 | you have. You must make sure that they, too, receive or can get the 52 | source code. And you must show them these terms so they know their 53 | rights. 54 | 55 | We protect your rights with two steps: (1) copyright the software, and 56 | (2) offer you this license which gives you legal permission to copy, 57 | distribute and/or modify the software. 58 | 59 | Also, for each author's protection and ours, we want to make certain 60 | that everyone understands that there is no warranty for this free 61 | software. If the software is modified by someone else and passed on, we 62 | want its recipients to know that what they have is not the original, so 63 | that any problems introduced by others will not reflect on the original 64 | authors' reputations. 65 | 66 | Finally, any free program is threatened constantly by software 67 | patents. We wish to avoid the danger that redistributors of a free 68 | program will individually obtain patent licenses, in effect making the 69 | program proprietary. To prevent this, we have made it clear that any 70 | patent must be licensed for everyone's free use or not licensed at all. 71 | 72 | The precise terms and conditions for copying, distribution and 73 | modification follow. 74 | 75 | GNU GENERAL PUBLIC LICENSE 76 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 77 | 78 | 0. This License applies to any program or other work which contains 79 | a notice placed by the copyright holder saying it may be distributed 80 | under the terms of this General Public License. The "Program", below, 81 | refers to any such program or work, and a "work based on the Program" 82 | means either the Program or any derivative work under copyright law: 83 | that is to say, a work containing the Program or a portion of it, 84 | either verbatim or with modifications and/or translated into another 85 | language. (Hereinafter, translation is included without limitation in 86 | the term "modification".) Each licensee is addressed as "you". 87 | 88 | Activities other than copying, distribution and modification are not 89 | covered by this License; they are outside its scope. The act of 90 | running the Program is not restricted, and the output from the Program 91 | is covered only if its contents constitute a work based on the 92 | Program (independent of having been made by running the Program). 93 | Whether that is true depends on what the Program does. 94 | 95 | 1. You may copy and distribute verbatim copies of the Program's 96 | source code as you receive it, in any medium, provided that you 97 | conspicuously and appropriately publish on each copy an appropriate 98 | copyright notice and disclaimer of warranty; keep intact all the 99 | notices that refer to this License and to the absence of any warranty; 100 | and give any other recipients of the Program a copy of this License 101 | along with the Program. 102 | 103 | You may charge a fee for the physical act of transferring a copy, and 104 | you may at your option offer warranty protection in exchange for a fee. 105 | 106 | 2. You may modify your copy or copies of the Program or any portion 107 | of it, thus forming a work based on the Program, and copy and 108 | distribute such modifications or work under the terms of Section 1 109 | above, provided that you also meet all of these conditions: 110 | 111 | a) You must cause the modified files to carry prominent notices 112 | stating that you changed the files and the date of any change. 113 | 114 | b) You must cause any work that you distribute or publish, that in 115 | whole or in part contains or is derived from the Program or any 116 | part thereof, to be licensed as a whole at no charge to all third 117 | parties under the terms of this License. 118 | 119 | c) If the modified program normally reads commands interactively 120 | when run, you must cause it, when started running for such 121 | interactive use in the most ordinary way, to print or display an 122 | announcement including an appropriate copyright notice and a 123 | notice that there is no warranty (or else, saying that you provide 124 | a warranty) and that users may redistribute the program under 125 | these conditions, and telling the user how to view a copy of this 126 | License. (Exception: if the Program itself is interactive but 127 | does not normally print such an announcement, your work based on 128 | the Program is not required to print an announcement.) 129 | 130 | These requirements apply to the modified work as a whole. If 131 | identifiable sections of that work are not derived from the Program, 132 | and can be reasonably considered independent and separate works in 133 | themselves, then this License, and its terms, do not apply to those 134 | sections when you distribute them as separate works. But when you 135 | distribute the same sections as part of a whole which is a work based 136 | on the Program, the distribution of the whole must be on the terms of 137 | this License, whose permissions for other licensees extend to the 138 | entire whole, and thus to each and every part regardless of who wrote it. 139 | 140 | Thus, it is not the intent of this section to claim rights or contest 141 | your rights to work written entirely by you; rather, the intent is to 142 | exercise the right to control the distribution of derivative or 143 | collective works based on the Program. 144 | 145 | In addition, mere aggregation of another work not based on the Program 146 | with the Program (or with a work based on the Program) on a volume of 147 | a storage or distribution medium does not bring the other work under 148 | the scope of this License. 149 | 150 | 3. You may copy and distribute the Program (or a work based on it, 151 | under Section 2) in object code or executable form under the terms of 152 | Sections 1 and 2 above provided that you also do one of the following: 153 | 154 | a) Accompany it with the complete corresponding machine-readable 155 | source code, which must be distributed under the terms of Sections 156 | 1 and 2 above on a medium customarily used for software interchange; or, 157 | 158 | b) Accompany it with a written offer, valid for at least three 159 | years, to give any third party, for a charge no more than your 160 | cost of physically performing source distribution, a complete 161 | machine-readable copy of the corresponding source code, to be 162 | distributed under the terms of Sections 1 and 2 above on a medium 163 | customarily used for software interchange; or, 164 | 165 | c) Accompany it with the information you received as to the offer 166 | to distribute corresponding source code. (This alternative is 167 | allowed only for noncommercial distribution and only if you 168 | received the program in object code or executable form with such 169 | an offer, in accord with Subsection b above.) 170 | 171 | The source code for a work means the preferred form of the work for 172 | making modifications to it. For an executable work, complete source 173 | code means all the source code for all modules it contains, plus any 174 | associated interface definition files, plus the scripts used to 175 | control compilation and installation of the executable. However, as a 176 | special exception, the source code distributed need not include 177 | anything that is normally distributed (in either source or binary 178 | form) with the major components (compiler, kernel, and so on) of the 179 | operating system on which the executable runs, unless that component 180 | itself accompanies the executable. 181 | 182 | If distribution of executable or object code is made by offering 183 | access to copy from a designated place, then offering equivalent 184 | access to copy the source code from the same place counts as 185 | distribution of the source code, even though third parties are not 186 | compelled to copy the source along with the object code. 187 | 188 | 4. You may not copy, modify, sublicense, or distribute the Program 189 | except as expressly provided under this License. Any attempt 190 | otherwise to copy, modify, sublicense or distribute the Program is 191 | void, and will automatically terminate your rights under this License. 192 | However, parties who have received copies, or rights, from you under 193 | this License will not have their licenses terminated so long as such 194 | parties remain in full compliance. 195 | 196 | 5. You are not required to accept this License, since you have not 197 | signed it. However, nothing else grants you permission to modify or 198 | distribute the Program or its derivative works. These actions are 199 | prohibited by law if you do not accept this License. Therefore, by 200 | modifying or distributing the Program (or any work based on the 201 | Program), you indicate your acceptance of this License to do so, and 202 | all its terms and conditions for copying, distributing or modifying 203 | the Program or works based on it. 204 | 205 | 6. Each time you redistribute the Program (or any work based on the 206 | Program), the recipient automatically receives a license from the 207 | original licensor to copy, distribute or modify the Program subject to 208 | these terms and conditions. You may not impose any further 209 | restrictions on the recipients' exercise of the rights granted herein. 210 | You are not responsible for enforcing compliance by third parties to 211 | this License. 212 | 213 | 7. If, as a consequence of a court judgment or allegation of patent 214 | infringement or for any other reason (not limited to patent issues), 215 | conditions are imposed on you (whether by court order, agreement or 216 | otherwise) that contradict the conditions of this License, they do not 217 | excuse you from the conditions of this License. If you cannot 218 | distribute so as to satisfy simultaneously your obligations under this 219 | License and any other pertinent obligations, then as a consequence you 220 | may not distribute the Program at all. For example, if a patent 221 | license would not permit royalty-free redistribution of the Program by 222 | all those who receive copies directly or indirectly through you, then 223 | the only way you could satisfy both it and this License would be to 224 | refrain entirely from distribution of the Program. 225 | 226 | If any portion of this section is held invalid or unenforceable under 227 | any particular circumstance, the balance of the section is intended to 228 | apply and the section as a whole is intended to apply in other 229 | circumstances. 230 | 231 | It is not the purpose of this section to induce you to infringe any 232 | patents or other property right claims or to contest validity of any 233 | such claims; this section has the sole purpose of protecting the 234 | integrity of the free software distribution system, which is 235 | implemented by public license practices. Many people have made 236 | generous contributions to the wide range of software distributed 237 | through that system in reliance on consistent application of that 238 | system; it is up to the author/donor to decide if he or she is willing 239 | to distribute software through any other system and a licensee cannot 240 | impose that choice. 241 | 242 | This section is intended to make thoroughly clear what is believed to 243 | be a consequence of the rest of this License. 244 | 245 | 8. If the distribution and/or use of the Program is restricted in 246 | certain countries either by patents or by copyrighted interfaces, the 247 | original copyright holder who places the Program under this License 248 | may add an explicit geographical distribution limitation excluding 249 | those countries, so that distribution is permitted only in or among 250 | countries not thus excluded. In such case, this License incorporates 251 | the limitation as if written in the body of this License. 252 | 253 | 9. The Free Software Foundation may publish revised and/or new versions 254 | of the General Public License from time to time. Such new versions will 255 | be similar in spirit to the present version, but may differ in detail to 256 | address new problems or concerns. 257 | 258 | Each version is given a distinguishing version number. If the Program 259 | specifies a version number of this License which applies to it and "any 260 | later version", you have the option of following the terms and conditions 261 | either of that version or of any later version published by the Free 262 | Software Foundation. If the Program does not specify a version number of 263 | this License, you may choose any version ever published by the Free Software 264 | Foundation. 265 | 266 | 10. If you wish to incorporate parts of the Program into other free 267 | programs whose distribution conditions are different, write to the author 268 | to ask for permission. For software which is copyrighted by the Free 269 | Software Foundation, write to the Free Software Foundation; we sometimes 270 | make exceptions for this. Our decision will be guided by the two goals 271 | of preserving the free status of all derivatives of our free software and 272 | of promoting the sharing and reuse of software generally. 273 | 274 | NO WARRANTY 275 | 276 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 277 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 278 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 279 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 280 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 281 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 282 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 283 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 284 | REPAIR OR CORRECTION. 285 | 286 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 287 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 288 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 289 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 290 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 291 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 292 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 293 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 294 | POSSIBILITY OF SUCH DAMAGES. 295 | 296 | END OF TERMS AND CONDITIONS 297 | 298 | How to Apply These Terms to Your New Programs 299 | 300 | If you develop a new program, and you want it to be of the greatest 301 | possible use to the public, the best way to achieve this is to make it 302 | free software which everyone can redistribute and change under these terms. 303 | 304 | To do so, attach the following notices to the program. It is safest 305 | to attach them to the start of each source file to most effectively 306 | convey the exclusion of warranty; and each file should have at least 307 | the "copyright" line and a pointer to where the full notice is found. 308 | 309 | 310 | Copyright (C) 311 | 312 | This program is free software; you can redistribute it and/or modify 313 | it under the terms of the GNU General Public License as published by 314 | the Free Software Foundation; either version 2 of the License, or 315 | (at your option) any later version. 316 | 317 | This program is distributed in the hope that it will be useful, 318 | but WITHOUT ANY WARRANTY; without even the implied warranty of 319 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 320 | GNU General Public License for more details. 321 | 322 | You should have received a copy of the GNU General Public License 323 | along with this program; if not, write to the Free Software 324 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 325 | 326 | 327 | Also add information on how to contact you by electronic and paper mail. 328 | 329 | If the program is interactive, make it output a short notice like this 330 | when it starts in an interactive mode: 331 | 332 | Gnomovision version 69, Copyright (C) year name of author 333 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 334 | This is free software, and you are welcome to redistribute it 335 | under certain conditions; type `show c' for details. 336 | 337 | The hypothetical commands `show w' and `show c' should show the appropriate 338 | parts of the General Public License. Of course, the commands you use may 339 | be called something other than `show w' and `show c'; they could even be 340 | mouse-clicks or menu items--whatever suits your program. 341 | 342 | You should also get your employer (if you work as a programmer) or your 343 | school, if any, to sign a "copyright disclaimer" for the program, if 344 | necessary. Here is a sample; alter the names: 345 | 346 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 347 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 348 | 349 | , 1 April 1989 350 | Ty Coon, President of Vice 351 | 352 | This General Public License does not permit incorporating your program into 353 | proprietary programs. If your program is a subroutine library, you may 354 | consider it more useful to permit linking proprietary applications with the 355 | library. If this is what you want to do, use the GNU Library General 356 | Public License instead of this License. 357 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | raspberrypi-firmware (1:9.20250422+1-6.1.134-1) UNRELEASED; urgency=medium 2 | 3 | [Linux kernel changelog] 4 | * Upgrade to Linux 6.1.134-rt51 5 | * pibridge-serdev: add missing bracket 6 | * pibridge-serdev: swap crc in debug message 7 | * pibridge-serdev: add sysfs entry to reset stats counters 8 | * pibridge-serdev: Fix driver attribute naming scheme 9 | * pibridge-serdev: introduce error counter for remotely detected errors 10 | * pibridge-serdev: change evaluation order for io frames 11 | * pibridge-serdev: change evaluation order for gate frames 12 | * pibridge-serdev: Make error counters more consistent 13 | 14 | [picontrol changelog] 15 | * Release v2.3.5 16 | * piControl: Fix RevPi MQTT Client device type value 17 | * Release v2.3.4 18 | * compact: in cycle timer use completion instead of work queue 19 | * Retry if flash erase during firmware update failed 20 | * Return correct error code if memory allocation failed in piControlOpen 21 | * In piControlOpen() do not reset piControl 22 | * Make function waitRunning() static 23 | * Remove unused counter for open instances 24 | * Use lock to check pibridge state 25 | 26 | -- Lino Sanfilippo Tue, 22 Apr 2025 19:01:46 +0200 27 | 28 | raspberrypi-firmware (1:9.20250319+1-6.1.112-1) UNRELEASED; urgency=medium 29 | 30 | [picontrol changelog] 31 | * Release v2.3.3 32 | * Retry flash write also for legacy firmware update 33 | * Add missing include in piFirmwareUpdate.h 34 | * piConfig: return JSON_ERROR_NO_MEMORY on OOM 35 | * piControlMain: add missing va_end() call 36 | * compact: avoid leak in revpi_compact_adjust_config 37 | * Retry flash write at firmware update 38 | * Adjust return value in fwuWrite() 39 | * Do not try to stop kernel thread that does not exist 40 | * Rename COMM_ERROR_MAX to COMM_ERROR_LOG_LIMIT 41 | * Correct logic for error counter 42 | 43 | -- Lino Sanfilippo Wed, 19 Mar 2025 10:55:12 +0100 44 | 45 | raspberrypi-firmware (1:9.20250224+1-6.1.112-1) UNRELEASED; urgency=medium 46 | 47 | [Linux kernel changelog] 48 | * arm*/configs/revpi-*: Enable Dynamic Debugging support in kernel 49 | * pibridge-serdev: increase statistics counters 50 | * pibridge-serdev: Use dynamic debug messages instead of warnings 51 | * pibridge-serdev: provide sysfs entries for statistics 52 | * pibridge-serdev: Add structure for statistics counters 53 | 54 | [picontrol changelog] 55 | * Release v2.3.2 56 | * At piControl reset do not forget to store parsing results 57 | * Ignore failure of piConfigParse() 58 | * Do not stop RevPi module initialization in case of invalid module config 59 | * Do not return positive value in piControlInit() 60 | * piControl: use metric to print warnings in case of communication errors 61 | * piControl: make counter of cycle numbers globally available 62 | * piControl: Use dynamic debug messages instead of warnings 63 | * Evaluate return value of piConfigParse() 64 | * Do not ignore the return value of config functions 65 | * piControl: avoid buffer overflow 66 | * Remove header and CRC from SDioConfig struct 67 | * piControl: add sanity check for DIO counters 68 | * piControl: remove unneeded variable 69 | * piControl: Fix driver remove for kernel 6.11+ 70 | * piControl: Move pibridge rt prio to revpi_core.c 71 | * piControl: Fix -Wmissing-prototypes errors 72 | * piControl: remove custom MIN and MAX macros and use kernel-provided macros 73 | * doc(README): update kernel header package 74 | * style(README): wrap on 80 characters 75 | * piControl: make padding explicit in structures 76 | * piControl: move code used only by kernel into extra header file 77 | * Release v2.3.1 78 | * piControl: Make gate log messages more useful 79 | * piControl: Drop gate packages if carrier is down 80 | * Release v2.3.0 81 | * piControl: Fix gigabit detection on PiBridge 82 | * piControl: Fix input length for Connect 5 83 | * piControl: remove unnecessary substates from state machine 84 | * piControl: add support for gigabit ethernet switch on PiBridge 85 | * piControl: Init PiBridge ethernet mode GPIOs on connect 5 86 | * piControl: add support for RevPi Connect 5 87 | 88 | -- Ramiro Gsponer Mon, 24 Feb 2025 10:16:00 +0100 89 | 90 | raspberrypi-firmware (1:9.20241109+1-6.1.112-1) UNRELEASED; urgency=medium 91 | 92 | [Linux kernel changelog] 93 | * iio: adc: mcp320x: Use workaround at AIN failure 94 | * pibridge-serdev: clear uninitialized fields in gateway datagram 95 | * arm: dts: revpi-flat-s-2022: Add overlay for dsa 96 | * serial: pl011: in RS485 tx path use usleep instead of delay 97 | * serial: pl011: temporarily release the ports lock for delays 98 | * serial: pl011: handle RS485 tx path in worker thread 99 | * pibridge-serdev: send datagrams in one 100 | 101 | [picontrol changelog] 102 | * piControl: Remove obsolete gateways 103 | * build: use ccflags-y instead of EXTRA_CFLAGS 104 | * build: remove spurious whitespace in Makefile 105 | * build: adhere to Kbuild doc for external module 106 | * build: Move Makefile from src/ to root 107 | * Release v2.2.1 108 | * piControl: Config tool is named PiCtory 109 | * Set base device serial from HAT eeprom 110 | * Use tabs for indention 111 | * ci: add REUSE lint job 112 | * reuse: make piControl REUSE compliant 113 | * Release v2.2.0 114 | * piControl: compact: create sysfs entry for lost cycles statistics 115 | * piControl: compact: use threshold for missed cycles warning 116 | * piControl: compact: reimplement sleep of cycle timer 117 | * piControl: compact: get rid of useless hrtimer_sleeper struct 118 | * piControl: fix device address handling in upload_firmware() 119 | * piControl: Add tracing for sniffpins 120 | * Use correct offset for gpiochip0 on flat 121 | * RevPi Generic PiBridge: Add new base device 122 | * Generic PiBridge Device: Add FW type id 123 | * Release piControl v2.1.3 124 | * Use picontrol_write_device_info to avoid duplicated code 125 | * Return info for address 0 with KB_GET_DEVICE_INFO 126 | * piControl: for firmware upload perform sanity checks as early as possible 127 | * piControl: rename element in picontrol_firmware_upload struct 128 | * piControl: set return value to 1 if firmware is already up to update 129 | * Fix typo in manpage 130 | * piControl: add padding bytes to picontrol_firmware_upload struct 131 | 132 | -- Ramiro Gsponer Sat, 09 Nov 2024 17:29:00 +0100 133 | 134 | raspberrypi-firmware (1:9.20240422+1-6.1.46-1) UNRELEASED; urgency=medium 135 | 136 | [picontrol changelog] 137 | * Release PiControl v2.1.2 138 | * Revert "piControl: remove useless io timer handling" 139 | 140 | -- Philipp Rosenberger Mon, 22 Apr 2024 08:37:46 +0200 141 | 142 | raspberrypi-firmware (1:9.20240418+1-6.1.46-1) UNRELEASED; urgency=medium 143 | 144 | [Linux kernel changelog] 145 | * wifi: mwifiex: fix uninitialized firmware_stat 146 | * wifi: mwifiex: add extra delay for firmware ready 147 | 148 | [picontrol changelog] 149 | * Release PiControl v2.1.1 150 | * piControl: flat: add delay between analog input data requests 151 | 152 | -- Philipp Rosenberger Thu, 18 Apr 2024 09:58:06 +0200 153 | 154 | raspberrypi-firmware (1:9.20240411+1-6.1.46-1) UNRELEASED; urgency=medium 155 | 156 | [Linux kernel changelog] 157 | * arm: dts: revpi-flat-s-2022: Use dwc2 usb 158 | * pibridge-serdev: return EIO instead of EBADMSG in case of incomplete data 159 | * net: ks8851: Fix TX stall caused by TX buffer overrun 160 | * CI: Allow checkpatch to fail without failing the whole pipeline 161 | * pibridge-serdev: add error and info messages at startup 162 | * arm: dts: revpi-compact: Fix boot output glitch 163 | * arm: dts: revpi-flat-s-2022: Disable wireless M-Bus by default 164 | 165 | [picontrol changelog] 166 | * Release PiControl v2.1.0 167 | * piControl: add new ioctl for firmware upload 168 | * fix: Add missing header pinconf-generic.h to revpi_core.c 169 | * README: Fix path in build instructions 170 | * piControl: bump module version to 2.0.0 171 | * piControl: remove compiletime.h 172 | * piControl: move source files into src directory 173 | * Configure a pull-down to Sniff2A pin 174 | * piControl: check for supported property instead of machine type 175 | * Get rid of the rpi firmware 176 | * Add header for of_device_id to revpi_core.c 177 | * Replace bcm2835_cpufreq_get_clock() with cpufreq_quick_get() 178 | * Add compat code for class_create as its API changed with 6.4 179 | * Make the dev pointer of the class.devnode() callback const 180 | * Remove compat code for Linux < 6.1 181 | * Remove the cpu thermal zone name from compat.h 182 | * Get rid of ktime_equal() 183 | * piControl: remove useless io timer handling 184 | * piControl: mio: clear last output values at reset 185 | * piControl: Add tracing for io-cycles 186 | * piControl: mio: Drop useless debug messages 187 | * Set rt prio for spi only on RevPi Core/Connect 188 | * Discover gateways by interface name 189 | * piControl: Drop RS-485 struct and macro definitions 190 | * piControl: Drop piIoComm_{recv,recv_timeout}() 191 | * piControl: Convert firmware update to kernel coding style 192 | * piControl: Drop RS-485 functions for firmware update 193 | * piControl: Migrate firmware update to pibridge library 194 | * piControl: Drop wrapper functions for firmware update 195 | * piControl: Fix fwuWrite() length check 196 | * piControl: fix userspace pointer access for KB_CONFIG_SEND ioctl 197 | * piControl: Fix kernel memory corruption by KB_CONFIG_SEND ioctl() 198 | * piControl: Fix MAX_TELEGRAM_DATA_SIZE off-by-one error 199 | 200 | -- Philipp Rosenberger Thu, 11 Apr 2024 09:27:51 +0200 201 | 202 | raspberrypi-firmware (1:9.20240205+1-6.1.46-1) UNRELEASED; urgency=medium 203 | 204 | [Linux kernel changelog] 205 | * arm: dts: revpi-flat-s-2022: Introduce device tree parameter to activate DSA 206 | * arm*/configs/revpi-*: Enable DSA support in kernel 207 | * arm: dts: revpi-flat-s-2022: Add DSA switch ports 208 | * arm: dts: revpi-flat-s-2022: Correct switch settings 209 | * dts/core-2022: ks8851 reset gpio is active low 210 | 211 | [picontrol changelog] 212 | * Adjust log level for various messages 213 | * piControl: flat: Do not request wrong GPIO for top button on flat S 214 | * Remove showPADS() debug function 215 | * MIO: Enable counter reset 216 | * Add documentation for the KB_RO_GET_COUNTER ioctl 217 | 218 | -- Lino Sanfilippo Mon, 5 Feb 2024 15:02:39 +0100 219 | 220 | raspberrypi-firmware (1:9.20231128+1-6.1.46-1) stable; urgency=medium 221 | 222 | [Linux kernel changelog] 223 | * pibridge-serdev: change datatype for data length in pibridge_send() 224 | * chore: Add move to GitLab to README 225 | 226 | [picontrol changelog] 227 | * Add ID of new MQTT client virtual device 228 | * Add ID of new OPC UA server virtual device 229 | * fix structure size for 64 bit machines 230 | * Remove unused header fwuFlashMain.h 231 | * Remove unused common_debug.h 232 | * Remove unused piIoComm_response_valid() 233 | * Fix IOPROTOCOL_MAXDATA_LENGTH off-by-one errors 234 | * Avoid leaking response of previous telegram to user space 235 | * mio: Return void in reset function 236 | * cleanup header includes 237 | * use packet attribute instead of header inclusion 238 | * use quotes instead of angle brackets for inclusion of local headers 239 | * implement KB_RO_GET_COUNTER telegram communication 240 | * piControl: Add support for RO module 241 | * fix inconsistent messages 242 | * fix macro misnomer 243 | * README: Replace github with gitlab 244 | * Drop cl->ent pointer check upon KB_SET_EXPORTED_OUTPUTS ioctl 245 | * Drop file pointer check upon KB_SET_EXPORTED_OUTPUTS ioctl 246 | * Return error code to user space 247 | * Remove orphaned code (KB_UPDATE_DEVICE_FIRMWARE) 248 | * Move check for virtual device into FWU_update 249 | * Don't update the base module 250 | * Don't report failure, when firmware is up to date 251 | * Add move to GitLab to README 252 | 253 | -- Lino Sanfilippo Tue, 28 Nov 2023 11:37:39 +0100 254 | 255 | raspberrypi-firmware (1:9.20231006+1-6.1.46-1) stable; urgency=medium 256 | 257 | [Linux kernel changelog] 258 | * Linux 6.1.46-rt13 259 | * Upgrade to Linux 6.1.46 260 | * Update RT patch to 6.1.46-rt13 261 | * New pibridge driver for piControl RS-485 communication 262 | * Refactor TPM reset on older RevPi Flat 263 | * Support TPM interrupt instead of polling 264 | [picontrol changelog] 265 | * Use kernel's pibridge driver for RS-485 communication 266 | * Recognize RO module 267 | * Fix piControl.h permissions 268 | 269 | -- Lukas Wunner Fri, 6 Oct 2023 14:29:11 +0200 270 | 271 | raspberrypi-firmware (1:9.20230926+1-5.10.152-1) stable; urgency=medium 272 | 273 | [Linux kernel changelog] 274 | * rtc: pcf2127: Disable time stamping support 275 | [picontrol changelog] 276 | * fix: Too long high pulse on the left ACK pin on Connect 4 277 | 278 | -- Philipp Rosenberger Tue, 26 Sep 2023 09:43:32 +0200 279 | 280 | raspberrypi-firmware (1:9.20230901+1-5.10.152-1) stable; urgency=medium 281 | 282 | [Linux kernel changelog] 283 | * xhci: Set DESI bits in ERDP register correctly 284 | * xhci: Clear EHB bit only at end of interrupt handler 285 | * CI: Use legacy piControl branch for snapshots 286 | 287 | -- Philipp Rosenberger Fri, 01 Sep 2023 09:28:40 +0200 288 | 289 | raspberrypi-firmware (1:9.20230720+1-5.10.152-1) stable; urgency=medium 290 | 291 | [Linux kernel changelog] 292 | * cfg80211: ship debian certificates as hex files 293 | * dts: core-se: Disable spi0 294 | 295 | [picontrol changelog] 296 | * Add README with basic build instructions 297 | 298 | -- Thomas Böhler Thu, 20 Jul 2023 11:34:42 +0200 299 | 300 | raspberrypi-firmware (1:9.20230627+1-5.10.152-1) stable; urgency=medium 301 | 302 | [Linux kernel changelog] 303 | * dts: connect4: Switch left sniff pins 304 | 305 | -- Philipp Rosenberger Tue, 27 Jun 2023 13:42:57 +0200 306 | 307 | raspberrypi-firmware (1:9.20230616+1-5.10.152-1) stable; urgency=medium 308 | 309 | [Linux kernel changelog] 310 | * dts: connect4: Correct fragment numbering 311 | * dts: connect4: Define HAT eeprom write protect pin 312 | * dts: connect4: Add debug UART 1 (TX only) 313 | * ARM: dts: revpi-connect4: Swap LED mode of SoC Ethernet 314 | 315 | [picontrol changelog] 316 | * Connect 4: Add digital output 317 | * Connect 4: Add support for digital input 318 | * Connect 4: Add RGB LED support 319 | * Rename SRevPiCoreImage to SRevPiProcessImage 320 | * Use gpiod_set_value_cansleep for sniff pins 321 | * Connect 4/Core SE/Connect SE: Don't set SPI prio 322 | * Connect 4: Use ttyAMA1 instead of ttyAMA0 323 | * Connect 4: Add new base device 324 | * Global flags for device features 325 | * piControl: increase priority of io-thread 326 | * Move piTest to separate repository 327 | * piTest: Add Connect 4 as known device 328 | * Connect 4: Add FW type description id 329 | 330 | -- Philipp Rosenberger Fri, 16 Jun 2023 08:48:18 +0200 331 | 332 | raspberrypi-firmware (1:9.20230425+1-5.10.152-2) stable; urgency=medium 333 | 334 | * Rebuild with correct KBUILD_BUILD_TIMESTAMP 335 | 336 | -- Philipp Rosenberger Thu, 27 Apr 2023 15:31:23 +0200 337 | 338 | raspberrypi-firmware (1:9.20230425+1-5.10.152-1) stable; urgency=medium 339 | 340 | [Linux kernel changelog] 341 | * net: phy: broadcom: Make LEDs 3+4 shadow LEDs 1+2 342 | * dts: connect4: Unify gpio mux settings for rs485 entry 343 | * dts: connect4: Add rs485 RTS active low property 344 | * dts: connect4: Use correct sniff pin order 345 | * ARM: dts: revpi-flat-s-2022: Use mainline driver for WiFi 346 | * arm*/configs/revpi-*: Enable PWRSEQ_SD8787 for Flat S 2022 WiFi 347 | * wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses 348 | * wifi: mwifiex: Support SD8978 chipset 349 | * wifi: mwifiex: Add missing compatible string for SD8787 350 | * mwifiex: Select firmware based on strapping 351 | * bcm2835-mmc: Honor return value of mmc_of_parse() 352 | * mmc: pwrseq_sd8787: Allow being built-in irrespective of dependencies 353 | * mmc: pwrseq: add wilc1000_sdio dependency for pwrseq_sd8787 354 | * arm64/configs/revpi-v8: Enable tasks stats 355 | 356 | [picontrol changelog] 357 | * Connect SE: Make led A3 usable via process image 358 | * Cleanup debianization 359 | * Add SPDX headers 360 | * Replace strncpy by snprintf 361 | * Fix gcc -Wformat= complaints 362 | 363 | -- Philipp Rosenberger Tue, 25 Apr 2023 14:11:24 +0200 364 | 365 | raspberrypi-firmware (1:9.20221118-5.10.152+revpi1) stable; urgency=medium 366 | 367 | [Linux kernel changelog] 368 | * Merge Linux 5.10.152-rt75 369 | * Upgrade to Linux 5.10.152 370 | * dts: Add dtoverlay for Connect 4 371 | * arm/dts: Add overlay for RevPi HAT EEPROMs 372 | * arm: dts: Add overlay for revpi flat 2022 373 | * arm: dts: flat: correct relais pin 374 | * ARM: dts: Enable USB by default on CM4S 375 | * dts: Add dt overlay for Core (cm1) 376 | * dts/dt-blob: Configure drive strength for pins on Core/connect 377 | * dts/dt-blob: Add configs of pin 0,1 for HATs on CM4S 378 | * dts/dt-blob: Add configs of pin 0,1 for HATs on CM3 379 | * dts: Add overlay to amend dt-blob from RPi 380 | * dts: Import from RPI as the base of revpi's dt-blob 381 | * arm64/configs/revpi-v8: Remove CONFIG_ANDROID 382 | * arm64/configs/revpi-v8: Remove CONFIG_MAX30102 383 | * arm64/configs/revpi-v8: Disable CONFIG_KVM 384 | * arm64/configs/revpi-v8: Add RevPi specific configuration 385 | * arm64/configs: Create revpi-v8_defconfig from bcm2711_defconfig 386 | * ARM64: dts: Add Zero 2 W and CM4S 387 | 388 | [picontrol changelog] 389 | * piControl: ensure setting I/O processing state is threadsafe 390 | * Fix format chars and casts for arm64 build 391 | * Print filename instead of address 392 | * Print serial device name instead of address 393 | * Allow optional arm64 build 394 | 395 | -- Zhi Han Fri, 18 Nov 2022 10:59:48 +0100 396 | 397 | raspberrypi-firmware (1:9.20220728-5.10.120+revpi1) stable; urgency=medium 398 | 399 | [Linux kernel changelog] 400 | * random: do not use jump labels before they are initialized 401 | 402 | -- Zhi Han Thu, 28 Jul 2022 10:27:11 +0200 403 | 404 | raspberrypi-firmware (1:9.20220727-5.10.120+revpi1) stable; urgency=medium 405 | 406 | [Linux kernel changelog] 407 | * Merge remote-tracking branch 'rpi/rpi-5.10.y' into revpi-5.10 408 | * Revert "tpm: fix reference counting for struct tpm_chip" 409 | * dts: Add RevPi Core SE (2022) overlay 410 | * dts: Add RevPi Core S (2022) overlay 411 | * dts/core-2022: Add revpi-core compatible 412 | * dts/revpi-flat: Add WLAN enable 413 | * dts: Add RevPi Core 3/3+ (2022) overlay 414 | * dts/core: Add comment for the spi-max-frequency 415 | * net: phy: smsc: Disable Energy Detect Power-Down in interrupt mode 416 | * Linux 5.10.120-rt70 417 | * Upgrade to Linux 5.10.120 418 | 419 | [picontrol changelog] 420 | * piControl: protect UPDATE_DEVICE_FIRMWARE against concurrent RESET ioctl 421 | * piControl: protect INTERN_SET_SERIAL_NUM against concurrent RESET ioctl 422 | * piControl: protect internal states agains RESET 423 | * piControl: Introduce mutex to protect against resets 424 | * Delete stale comment 425 | * piControl: Add Support for Core SE 426 | * piControl: Add support for Connect SE 427 | * piControl: support connect se compatible 428 | 429 | -- Zhi Han Wed, 27 Jul 2022 08:59:53 +0200 430 | 431 | raspberrypi-firmware (1:9.20220524-5.10.103+revpi1) stable; urgency=medium 432 | 433 | [Linux kernel changelog] 434 | * dts/revpi-*: Switch to dwc2 USB driver 435 | 436 | -- Philipp Rosenberger Tue, 24 May 2022 13:32:16 +0200 437 | 438 | raspberrypi-firmware (1:9.20220502-5.10.103+revpi1) stable; urgency=medium 439 | 440 | [Linux kernel changelog] 441 | * dts/core: Fix typo in the spi0 fragment 442 | 443 | -- Frank Erdrich Mon, 02 May 2022 09:43:42 +0200 444 | 445 | raspberrypi-firmware (1:9.20220428-5.10.103+revpi1) stable; urgency=medium 446 | 447 | [Linux kernel changelog] 448 | * dts/core: Use own fragments to modify existing pinmuxes 449 | 450 | -- Frank Erdrich Thu, 28 Apr 2022 15:55:55 +0100 451 | 452 | raspberrypi-firmware (1:9.20220427-5.10.103+revpi1) stable; urgency=medium 453 | 454 | [Linux kernel changelog] 455 | * dts/connect-se: Use own fragments to modify existing pinmuxes 456 | * dts/connect-se: Amend compatible string for CM4S 457 | * dts/connect: Use own fragments to modify existing pinmuxes 458 | * Add the device tree overlay for Connect SE 459 | 460 | -- Frank Erdrich Wed, 27 Apr 2022 16:41:05 +0100 461 | 462 | raspberrypi-firmware (1:9.20220419-5.10.103+revpi1) stable; urgency=medium 463 | 464 | [Linux kernel changelog] 465 | * dts/revpi-core: Add pinmux for the led gpios 466 | * dts/revpi-core: Add missing pinmux for the all sniff pins 467 | * dts/revpi-core: Add rs485 (uart0) node 468 | * dts/revpi-core: Assign missing unused pinmux 469 | * dts/connect: Assign sniff and connect pins to the pibridge 470 | * dts/connect: Assign missing unused pinmux 471 | * dts/connect: Fix pibridge rs485 pulls 472 | * serial: amba-pl011: do not time out prematurely when draining tx fifo for rs485 473 | * arm: dts: revpi-con-can: Move pincontrol references for can0 474 | 475 | [picontrol changelog] 476 | * piControl: Linux 5.16 compat: Drop userspace includes 477 | * piControl: Linux 5.12 compat: Use MAX_RT_PRIO 478 | * Remove prio settings for ktimersoftd 479 | * connect: Fix gpio assingment of x2do 480 | 481 | -- Frank Erdrich Tue, 19 Apr 2022 09:58:53 +0100 482 | 483 | raspberrypi-firmware (1:9.20220323-5.10.103+revpi1) stable; urgency=medium 484 | 485 | * Linux 5.10.103-rt62 486 | * Upgrade to Linux 5.10.103 487 | * Update RT patch to 5.10.103-rt62 488 | * Support CM4/CM4S (BCM2711) Modules (armv7l) 489 | * Disable /dev/gpiomem support [security] 490 | * SMSC95xx: Use interrupt for link status, avoid polling 491 | * Cleanup pinmux for revpi devices in dt overlays 492 | * TPM SLB 9670: Implement proper reset procedure 493 | * piControl: flat: Shrink critical region in the ain thread 494 | * piControl: compact: Shrink critical section (cpu temp/freq) [Fix missing cycles] 495 | * piControl: compact: Use hardware interrupt timer instead in soft interrupt 496 | * piControl: compact: Replace smp_read_barrier_depends() with smp_rmb() 497 | * piControl: revpi: connect: adjust code to pibridge device tree entry 498 | * piControl: revpi: core: register platform driver for revpi core device 499 | * piControl: Stop gateway communication on module unload 500 | * piControl: Process gateway packets in task context 501 | * piControl: revpi_core: make sure UART thread does not block at module unload 502 | * piControl: use correct function to exchange data with userspace 503 | * piControl: add module depency for DIN on compact 504 | 505 | -- Philipp Rosenberger Wed, 23 Mar 2022 09:25:25 +0100 506 | 507 | raspberrypi-firmware (1:9.20220322-4.19.95+revpi1) stable; urgency=medium 508 | 509 | * dts: revpi-core: pull down sniff pin 510 | * piControl: add module depency for DIN on compact 511 | * piControl: use correct function to exchange data with userspace 512 | * Use hardware interrupt timer instead in soft interrupt 513 | * compact: Shrink critical section (cpu temp/freq) 514 | * flat: Shrink critical region in the ain thread 515 | * fix: The removal of elevator= from the cmdline.txt is not working 516 | * Fix a warning about divert behavior change 517 | * debian/control: Claim maintainership of this package 518 | * debian/control: Update the controlfile from upstream 519 | 520 | -- Philipp Rosenberger Tue, 22 Mar 2022 10:23:56 +0100 521 | 522 | raspberrypi-firmware (1:9.20211203-4.19.95+revpi1) stable; urgency=medium 523 | 524 | * Revert "brcmfmac: Add support for reading mac address from device tree" 525 | * Revert "ARM: dts: revpi-flat: Add support for wifi mac address" 526 | * piControl:compact: handle missing config settings 527 | * piControl:flat: handle missing config settings 528 | 529 | -- Philipp Rosenberger Fri, 03 Dec 2021 13:57:20 +0100 530 | 531 | raspberrypi-firmware (1:9.20211109-4.19.95+revpi1) stable; urgency=medium 532 | 533 | * dts/revpi-flat: Add WLAN enable 534 | 535 | -- Philipp Rosenberger Tue, 09 Nov 2021 08:26:50 +0100 536 | 537 | raspberrypi-firmware (1:9.20210622-4.19.95+revpi1) stable; urgency=medium 538 | 539 | * Fix: KSZ8851 reset takes to long (PiBridge) 540 | 541 | -- Philipp Rosenberger Tue, 22 Jun 2021 15:20:40 +0200 542 | 543 | raspberrypi-firmware (1:9.20210415-4.19.95+revpi2) stable; urgency=medium 544 | 545 | * Increase epoch to superseed raspios kernel-package again 546 | 547 | -- Philipp Rosenberger Wed, 19 May 2021 09:44:58 +0200 548 | 549 | raspberrypi-firmware (9.20210415-4.19.95+revpi1) stable; urgency=medium 550 | 551 | * flat,compact: set default values of virtual devices 552 | * pcf2127: various fixes 553 | 554 | -- Lino Sanfilippo Thu, 15 Apr 2021 11:07:51 +0200 555 | 556 | raspberrypi-firmware (9.20210326-4.19.95+revpi1) stable; urgency=medium 557 | 558 | * Enable can drivers in kernel 559 | 560 | -- Lino Sanfilippo Fri, 26 Mar 2021 13:26:19 +0100 561 | 562 | raspberrypi-firmware (9.20210316-4.19.95+revpi1) stable; urgency=medium 563 | 564 | * New piControl release 1.3.1-1 565 | 566 | -- Lino Sanfilippo Wed, 17 Mar 2021 10:47:19 +0100 567 | 568 | raspberrypi-firmware (9.20210310-4.19.95+revpi1) stable; urgency=medium 569 | 570 | * Add support for RevPi MIO 571 | * Use nproc to determin the number of build processes 572 | * Upgrade to debhelper 10 573 | 574 | -- Philipp Rosenberger Wed, 10 Mar 2021 13:58:49 +0100 575 | 576 | raspberrypi-firmware (9.20201102-4.19.95+revpi1~0flat1) stable; urgency=medium 577 | 578 | * Add the support for Revolution Pi Flat. 579 | 580 | -- Zhi Han Mon, 2 Nov 2020 13:15:00 +0200 581 | 582 | raspberrypi-firmware (9.20200616-4.19.95+revpi1) stable; urgency=medium 583 | 584 | * Public 4.19 release for the upcoming 6/2020 image. 585 | 586 | -- Kunbus Tue, 16 Jun 2020 13:15:00 +0200 587 | 588 | raspberrypi-firmware (9.20200120-4.19.95+revpi1) stable; urgency=medium 589 | 590 | * Fixups for RevPi Connect Flat: 591 | 592 | Compile pca953x driver into kernel proper and not as a module 593 | to speed up probing of UART drivers which require access to 594 | rs485 termination GPIOs. 595 | 596 | Avoid failure of assigning 1 as number of runtime 8250 UARTs 597 | caused by comment. 598 | 599 | UART1 is controlled by the core clock. Downclocking changes 600 | the baudrate and garbles I/O. Avoid by defaulting to "performance" 601 | cpufreq governor. This ensures that UART1 is usable as console. 602 | 603 | -- Kunbus Mon, 20 Jan 2020 15:00:00 +0100 604 | 605 | raspberrypi-firmware (9.20190927-4.19.29+revpi1) stable; urgency=medium 606 | 607 | * New upstream release based on v4.19 608 | * Add support for RevPi Connect Flat 609 | 610 | -- Kunbus Fri, 27 Sep 2019 15:30:00 +0200 611 | 612 | raspberrypi-firmware (9.20200228-4.9.76+revpi1) stable; urgency=medium 613 | 614 | * Quiesce IRQs left enabled by bootloader to fix lockups 615 | * Drive mux GPIO low on RevPi Connect via dt-blob.bin 616 | to work around missing pulldown on hardware rev 06 617 | * Update dt-blob.bin on package installation 618 | * piControl: Support RevPi Connect Flat 619 | * piControl: Support I/O module status 620 | * piControl: Support seek ioctl 621 | 622 | -- Kunbus Fri, 28 Feb 2020 15:15:00 +0100 623 | 624 | raspberrypi-firmware (9.20190904-4.9.76+revpi1) stable; urgency=medium 625 | 626 | * netfilter: Introduce egress hook 627 | * piControl: Filter non-gateway packets on egress to work around 628 | gateway firmware which fails to handle those packets properly 629 | 630 | -- Kunbus Wed, 4 Sep 2019 16:00:00 +0200 631 | 632 | raspberrypi-firmware (9.20190312-4.9.76+revpi1) stable; urgency=medium 633 | 634 | * piControl: Use native network stack for RevPi Gate communication 635 | * spi / dmaengine / ks8851: numerous reliability fixes 636 | 637 | -- Kunbus Tue, 12 Mar 2019 14:45:00 +0100 638 | 639 | raspberrypi-firmware (9.20180717-4.9.76+revpi1) stable; urgency=medium 640 | 641 | * piControl: changed error handling of gateway communication again 642 | 643 | -- Kunbus Tue, 17 Jul 2018 14:15:00 +0200 644 | 645 | raspberrypi-firmware (9.20180716-4.9.76+revpi1) stable; urgency=medium 646 | 647 | * piControl: changed error handling of gateway communication of piBridge 648 | 649 | -- Kunbus Mon, 16 Jul 2018 15:00:00 +0200 650 | 651 | raspberrypi-firmware (9.20180529-4.9.76+revpi1) stable; urgency=medium 652 | 653 | * piControl: add support for new Connect modules 654 | 655 | -- Kunbus Tue, 29 May 2018 10:00:00 +0200 656 | 657 | raspberrypi-firmware (9.20180528-4.9.76+revpi1) stable; urgency=medium 658 | 659 | * can: hi311x: bug fixes 660 | 661 | -- Kunbus Mon, 28 May 2018 10:00:00 +0200 662 | 663 | raspberrypi-firmware (9.20180503-4.9.76+revpi1) stable; urgency=medium 664 | 665 | * can: hi311x: bug fixes 666 | 667 | -- Kunbus Thu, 03 May 2018 10:30:00 +0200 668 | 669 | raspberrypi-firmware (9.20180427-4.9.76+revpi1) stable; urgency=medium 670 | 671 | * can: hi311x: add driver for Holt HI-3110 672 | 673 | -- Kunbus Fri, 27 Apr 2018 14:30:00 +0200 674 | 675 | raspberrypi-firmware (9.20180409-4.9.76+revpi1) stable; urgency=medium 676 | 677 | * usb: dwc_otg: fix memory corruption in dwc_otg driver 678 | https://github.com/raspberrypi/linux/pull/2477 679 | 680 | -- Kunbus Mon, 09 Apr 2018 12:30:00 +0200 681 | 682 | raspberrypi-firmware (9.20180323-4.9.76+revpi1) stable; urgency=medium 683 | 684 | * Improved firmware update of DIO and AIO modules 685 | 686 | -- Kunbus Fri, 23 Mar 2018 15:30:00 +0100 687 | 688 | raspberrypi-firmware (9.20180222-4.9.76+revpi1) stable; urgency=medium 689 | 690 | * Add support for RevPi Connect Watchdog 691 | 692 | -- Kunbus Thu, 22 Feb 2018 15:30:00 +0100 693 | 694 | raspberrypi-firmware (9.20180110-1+revpi1) stable; urgency=medium 695 | 696 | * New piControl release 697 | 698 | -- Kunbus Wed, 10 Jan 2018 08:15:00 +0100 699 | 700 | raspberrypi-firmware (9.20171206-1+revpi1) stable; urgency=medium 701 | 702 | * New upstream release 1.20171029-1 based on v4.9 703 | * New piControl release 704 | * Hardware support for RevPi Compact 705 | * Device trees for RevPi Core/Compact/Connect replace kunbus.dts 706 | 707 | -- Kunbus Wed, 06 Dec 2017 14:15:00 +0100 708 | 709 | raspberrypi-firmware (9.20170920-1+revpi1) stable; urgency=medium 710 | 711 | * New piControl release 712 | * Some bug fixes for RevPi AIO 713 | 714 | -- Kunbus Wed, 20 Sep 2017 09:30:00 +0100 715 | 716 | raspberrypi-firmware (9.20170731-1+revpi1) stable; urgency=medium 717 | 718 | * New piControl release raspberrypi-kernel_9.20170731-1+revpi 719 | 720 | -- Kunbus Mon, 31 Jul 2017 08:10:00 +0100 721 | 722 | raspberrypi-firmware (9.20170622-1+revpi1) stable; urgency=medium 723 | 724 | * New piControl release 9.20170622-1+revpi1 725 | 726 | -- Kunbus Thu, 22 Jun 2017 11:45:00 +0100 727 | 728 | raspberrypi-firmware (9.20170515-1+revpi1) stable; urgency=medium 729 | 730 | * New upstream release 4.4.53-rt66 731 | 732 | -- Kunbus Mon, 15 May 2017 11:00:00 +0100 733 | 734 | raspberrypi-firmware (9.20170309-1+revpi1) stable; urgency=medium 735 | 736 | * New upstream release 4.4.50-rt62 737 | * Include Oussama Ghorbel's patch to support threaded IRQs with dwc_otg 738 | 739 | -- Kunbus Thu, 9 Mar 2017 09:00:00 +0100 740 | 741 | raspberrypi-firmware (9.20170124-1+revpi1) stable; urgency=medium 742 | 743 | * New upstream release 4.4.44-rt19 744 | 745 | -- Kunbus Thu, 24 Jan 2017 09:00:00 +0100 746 | 747 | raspberrypi-firmware (1.20161215-1) jessie; urgency=medium 748 | 749 | * firmware as of 2190ebaaab17d690fb4a6aa767ff7755eaf51b12 750 | 751 | -- Serge Schneider Mon, 19 Dec 2016 20:03:40 +0000 752 | 753 | raspberrypi-firmware (1.20161125-1) jessie; urgency=medium 754 | 755 | * firmware as of 5d80cd839dd4fe283d573df2ec3f3829b09b33f0 756 | 757 | -- Serge Schneider Fri, 25 Nov 2016 16:37:08 +0000 758 | 759 | raspberrypi-firmware (1.20161020-1) jessie; urgency=medium 760 | 761 | * firmware as of ec5a517ed6051974a5a09f7b7811d21c443a7c74 762 | * raspberrypi-bootloader: Move raspberrypi-kernel to Recommends 763 | 764 | -- Serge Schneider Mon, 24 Oct 2016 12:43:51 +0100 765 | 766 | raspberrypi-firmware (1.20160921-1) jessie; urgency=medium 767 | 768 | * firmware as of ad8608c08b122b2c228dba0ff5070d6e9519faf5 769 | 770 | -- Serge Schneider Thu, 22 Sep 2016 09:09:53 +0100 771 | 772 | raspberrypi-firmware (1.20160620-1) jessie; urgency=medium 773 | 774 | * firmware as of 390f53ed0fd79df274bdcc81d99e09fa262f03ab 775 | 776 | -- Serge Schneider Wed, 22 Jun 2016 08:10:35 +0100 777 | 778 | raspberrypi-firmware (1.20160523-1) jessie; urgency=medium 779 | 780 | * firmware as of 3b98f7433649e13cf08f54f509d11491c99c4c0b 781 | 782 | -- Serge Schneider Fri, 27 May 2016 10:22:10 +0100 783 | 784 | raspberrypi-firmware (1.20160512-1) jessie; urgency=medium 785 | 786 | * firmware as of 3816e1ce1e6ebc6d2bf0596dbd52849e16aa7e94 787 | 788 | -- Serge Schneider Thu, 12 May 2016 13:05:45 +0100 789 | 790 | raspberrypi-firmware (1.20160506-1) jessie; urgency=medium 791 | 792 | * firmware as of cc6d7bf8b4c03a2a660ff9fdf4083fc165620866 793 | 794 | -- Serge Schneider Fri, 06 May 2016 17:59:32 +0100 795 | 796 | raspberrypi-firmware (1.20160503-1) jessie; urgency=medium 797 | 798 | * firmware as of 6832d9a431a98b640accb2b76eac38a420d7c680 799 | * update symlinks 800 | * add device-tree-compiler dependency 801 | 802 | -- Serge Schneider Wed, 04 May 2016 15:33:17 +0100 803 | 804 | raspberrypi-firmware (1.20160424-1) jessie; urgency=medium 805 | 806 | * firmware as of c1485f5cad98689d1c655c768a12565415f5ef13 807 | * add dtoverlay, dtparam and dtmerge symlinks 808 | 809 | -- Serge Schneider Tue, 26 Apr 2016 11:19:23 +0100 810 | 811 | raspberrypi-firmware (1.20160405-1) jessie; urgency=medium 812 | 813 | * firmware as of c06550099b9593192d6e2cc7e6446a6b4380d3f4 814 | 815 | -- Serge Schneider Wed, 06 Apr 2016 15:24:22 +0100 816 | 817 | raspberrypi-firmware (1.20160315-1) jessie; urgency=medium 818 | 819 | * firmware as of 951799bbcd795ddf27769d14acf4813fdcbe53dc 820 | 821 | -- Serge Schneider Wed, 16 Mar 2016 09:52:39 +0000 822 | 823 | raspberrypi-firmware (1.20160309-1) jessie; urgency=medium 824 | 825 | * firmware as of 8b4e5482b52e6fb438dddc0d88ba0ba8d44af54b 826 | 827 | -- Serge Schneider Mon, 14 Mar 2016 15:41:10 +0000 828 | 829 | raspberrypi-firmware (1.20160209-1) jessie; urgency=medium 830 | 831 | * firmware as of 3442862c10fab68c2e88d660d2e69c143bb1f00c 832 | 833 | -- Serge Schneider Tue, 09 Feb 2016 13:33:33 +0000 834 | 835 | raspberrypi-firmware (1.20160202-1) jessie; urgency=medium 836 | 837 | * firmware as of cb2ffaa5503ac53039d40715965480dd66f0aa20 838 | 839 | -- Serge Schneider Tue, 02 Feb 2016 09:52:07 +0000 840 | 841 | raspberrypi-firmware (1.20150923-1) jessie; urgency=medium 842 | 843 | * firmware as of 960832a6c2590635216c296b6ee0bebf67b21d50 844 | 845 | -- Serge Schneider Wed, 23 Sep 2015 16:10:43 +0100 846 | 847 | raspberrypi-firmware (1.20150820-1) wheezy; urgency=medium 848 | 849 | * firmware as of bbf5495c0424fe38d795111007e93f8763b88bcc 850 | 851 | -- Serge Schneider Fri, 21 Aug 2015 17:16:06 +0100 852 | 853 | raspberrypi-firmware (1.20150421-1) unstable; urgency=low 854 | 855 | * firmware as of 6cc27e02dde4f1e02cfddb3d0f23d54be87680cb 856 | * Make vc-sm and vcio subsystems writable by video group 857 | 858 | -- Serge Schneider Mon, 27 Apr 2015 09:56:44 +0100 859 | 860 | raspberrypi-firmware (1.20150214-2) unstable; urgency=medium 861 | 862 | * Fix for incorrect NOOBS images 863 | 864 | -- Serge Schneider Fri, 27 Mar 2015 19:11:24 +0000 865 | 866 | raspberrypi-firmware (1.20150214-1) unstable; urgency=low 867 | 868 | * firmware as of 8aca5762 869 | 870 | -- Sun, 15 Feb 2015 11:19:20 +0000 871 | 872 | raspberrypi-firmware (1.20150212-1) unstable; urgency=low 873 | 874 | * firmware as of 47bd0f0f46b 875 | 876 | -- Thu, 12 Feb 2015 21:00:49 +0000 877 | 878 | raspberrypi-firmware (1.20150208-1) unstable; urgency=low 879 | 880 | * firmware as of a43480416153e8 881 | 882 | -- Thu, 12 Feb 2015 16:30:12 +0000 883 | 884 | raspberrypi-firmware (1.20150130-1) unstable; urgency=low 885 | 886 | * firmware as of 1f56136651963e 887 | 888 | -- Sat, 31 Jan 2015 19:50:59 +0000 889 | 890 | raspberrypi-firmware (1.20150128-1) unstable; urgency=low 891 | 892 | * firmware as of 9b068fe44503f5 893 | 894 | -- Thu, 29 Jan 2015 16:59:02 +0000 895 | 896 | raspberrypi-firmware (1.20141219-1) unstable; urgency=low 897 | 898 | * firmware as of 2f9828c4577a85 899 | 900 | -- Sun, 21 Dec 2014 10:53:44 +0000 901 | 902 | raspberrypi-firmware (1.20141207-1) unstable; urgency=low 903 | 904 | * firmware as of 9d58d7bcc9d144 905 | 906 | -- Sun, 07 Dec 2014 17:49:01 +0000 907 | 908 | raspberrypi-firmware (1.20140908-1) unstable; urgency=low 909 | 910 | * firmware as of 53d1ae311226b5c 911 | 912 | -- Mon, 08 Sep 2014 19:23:42 +0000 913 | 914 | raspberrypi-firmware (1.20140830-1) unstable; urgency=low 915 | 916 | * firmware as of 1bb122bcd82bcd3 917 | 918 | -- Tue, 02 Sep 2014 07:08:05 +0000 919 | 920 | raspberrypi-firmware (1.20140618-1) unstable; urgency=low 921 | 922 | * firmware as of 462f3e3f476f7b6 923 | 924 | -- Thu, 19 Jun 2014 18:57:45 +0000 925 | 926 | raspberrypi-firmware (1.20140530-1) unstable; urgency=low 927 | 928 | * firmware as of 02eed2f817b42590180 929 | 930 | -- Sun, 01 Jun 2014 10:50:48 +0000 931 | 932 | raspberrypi-firmware (1.20140107-1) unstable; urgency=low 933 | 934 | * firmware as of 030082b403b 935 | 936 | -- Tue, 07 Jan 2014 19:39:01 +0000 937 | 938 | raspberrypi-firmware (1.20131219-1) unstable; urgency=low 939 | 940 | * firmware as of c32bc633039cd9 941 | 942 | -- Fri, 20 Dec 2013 11:03:43 +0000 943 | 944 | raspberrypi-firmware (1.20131209-1) unstable; urgency=low 945 | 946 | * firmware as of 9d34d0475f9 947 | 948 | -- Wed, 10 Dec 2013 13:47:42 +0000 949 | 950 | raspberrypi-firmware (1.20130902-1) unstable; urgency=low 951 | 952 | * firmware as of d4f5315cfac4e 953 | 954 | -- Wed, 04 Sep 2013 20:09:43 +0000 955 | 956 | raspberrypi-firmware (1.20130815-1) unstable; urgency=low 957 | 958 | * firmware as of e0590d6dda8413 959 | 960 | -- Sat, 17 Aug 2013 15:43:58 +0000 961 | 962 | raspberrypi-firmware (1.20130617-1) unstable; urgency=low 963 | 964 | * firmware as of a0c98fa6bc0f 965 | 966 | -- Wed, 19 Jun 2013 10:06:03 +0000 967 | 968 | raspberrypi-firmware (1.20130524-1) unstable; urgency=low 969 | 970 | * firmware as of 6f4a90c8cb8817f 971 | 972 | -- Sat, 25 May 2013 15:56:50 +0000 973 | 974 | raspberrypi-firmware (1.20130520-1) unstable; urgency=low 975 | 976 | * firmware as of a0f8a0331419a4 977 | 978 | -- Wed, 22 May 2013 20:13:43 +0000 979 | 980 | raspberrypi-firmware (1.20130517-1) unstable; urgency=low 981 | 982 | * firmware as of 4f2a7b9b2a3d6c1 983 | 984 | -- Sat, 18 May 2013 12:34:55 +0000 985 | 986 | raspberrypi-firmware (1.20130514-1) unstable; urgency=low 987 | 988 | * firmware as of 1c339b164613b 989 | 990 | -- Thu, 16 May 2013 17:29:01 +0000 991 | 992 | raspberrypi-firmware (1.20130512-1) unstable; urgency=low 993 | 994 | * firmware as of f53948f6fbcb 995 | 996 | -- Mon, 13 May 2013 19:44:37 +0000 997 | 998 | raspberrypi-firmware (1.20130505-3) unstable; urgency=low 999 | 1000 | * disable /etc/asound.conf if it uses mmap_emul as it is no longer necessary 1001 | 1002 | -- Fri, 10 May 2013 11:23:53 +0000 1003 | 1004 | raspberrypi-firmware (1.20130505-1) unstable; urgency=low 1005 | 1006 | * firmware as of de687862fa8365ad7 1007 | 1008 | -- Wed, 08 May 2013 08:15:11 +0000 1009 | 1010 | raspberrypi-firmware (1.20130207-1) unstable; urgency=low 1011 | 1012 | * firmware as of 5dd9b4962e 1013 | 1014 | -- Sat, 09 Feb 2013 00:20:15 +0000 1015 | 1016 | raspberrypi-firmware (1.20130203-1) unstable; urgency=low 1017 | 1018 | *firmware as of efc9c98fa 1019 | 1020 | -- Mon, 04 Feb 2013 01:57:04 +0000 1021 | 1022 | raspberrypi-firmware (1.20130130-1) unstable; urgency=low 1023 | 1024 | * firmware as of 73d99edf0 1025 | 1026 | -- Sun, 03 Feb 2013 02:10:45 +0000 1027 | 1028 | raspberrypi-firmware (1.20121025-1) unstable; urgency=low 1029 | 1030 | * firmware as of 17c8799375 1031 | 1032 | -- Alex Bradbury Sun, 28 Oct 2012 17:39:32 +0000 1033 | 1034 | raspberrypi-firmware (1.20121006-1) unstable; urgency=low 1035 | 1036 | * firmware as of db62088e82 1037 | 1038 | -- Alex Bradbury Sun, 07 Oct 2012 21:35:05 +0100 1039 | 1040 | raspberrypi-firmware (1.20120918-1) unstable; urgency=low 1041 | 1042 | * firmware as of f569ff5254 1043 | 1044 | -- Alex Bradbury Tue, 18 Sep 2012 10:11:53 +0100 1045 | 1046 | raspberrypi-firmware (1.20120916-1) unstable; urgency=low 1047 | 1048 | * firmware as of f20e9d70a2 1049 | 1050 | -- Alex Bradbury Sun, 16 Sep 2012 20:47:11 +0100 1051 | 1052 | raspberrypi-firmware (1.20120915-1) unstable; urgency=low 1053 | 1054 | * firmware as of 9c8c1bd57e 1055 | 1056 | -- Alex Bradbury Sat, 15 Sep 2012 20:51:34 +0100 1057 | 1058 | raspberrypi-firmware (1.20120910-1) unstable; urgency=low 1059 | 1060 | * firmware as of 05bb1ecbf5 1061 | 1062 | -- Alex Bradbury Wed, 12 Sep 2012 17:18:25 +0100 1063 | 1064 | raspberrypi-firmware (1.20120903-1) unstable; urgency=low 1065 | 1066 | * firmware as of 7847986e3d 1067 | 1068 | -- Alex Bradbury Mon, 03 Sep 2012 17:53:29 +0100 1069 | 1070 | raspberrypi-firmware (1.20120831-1) unstable; urgency=low 1071 | 1072 | * firmware as of fe629bcc9a 1073 | 1074 | -- Alex Bradbury Sun, 02 Sep 2012 19:15:15 +0100 1075 | 1076 | raspberrypi-firmware (1.20120830-1) unstable; urgency=low 1077 | 1078 | * firmware as of d5e9e96a66 1079 | * NOTE: yesterday's firmware and today's are both misversioned, as I should 1080 | have versioned according to the date of the firmware update. 1081 | 1082 | -- Alex Bradbury Thu, 30 Aug 2012 20:36:26 +0100 1083 | 1084 | raspberrypi-firmware (1.20120829-1) unstable; urgency=low 1085 | 1086 | * firmware as of 59059dea7a 1087 | 1088 | -- Alex Bradbury Wed, 29 Aug 2012 22:44:59 +0100 1089 | 1090 | raspberrypi-firmware (1.20120822-1) unstable; urgency=low 1091 | 1092 | * firmware as of c42f21261f 1093 | 1094 | -- Alex Bradbury Wed, 22 Aug 2012 16:18:59 +0100 1095 | 1096 | raspberrypi-firmware (1.20120810-1) unstable; urgency=low 1097 | 1098 | * firmware as of cb9513f48b 1099 | 1100 | -- Alex Bradbury Mon, 13 Aug 2012 21:35:59 +0100 1101 | 1102 | raspberrypi-firmware (1.20120808-1) unstable; urgency=low 1103 | 1104 | * firmware as of 7680bb38ee 1105 | 1106 | -- Alex Bradbury Wed, 08 Aug 2012 17:04:11 +0100 1107 | 1108 | raspberrypi-firmware (1.20120801-2) unstable; urgency=low 1109 | 1110 | * fix silly packaging mistake 1111 | 1112 | -- Alex Bradbury Wed, 01 Aug 2012 22:37:24 +0100 1113 | 1114 | raspberrypi-firmware (1.20120801-1) unstable; urgency=low 1115 | 1116 | * firmware as of 0a2e8d4095 1117 | 1118 | -- Alex Bradbury Wed, 01 Aug 2012 22:04:23 +0100 1119 | 1120 | raspberrypi-firmware (1.20120725-1) unstable; urgency=low 1121 | 1122 | * firmware as of e73e84c7 1123 | 1124 | -- Alex Bradbury Wed, 25 Jul 2012 23:35:33 +0100 1125 | 1126 | raspberrypi-firmware (1.20120722-1) unstable; urgency=low 1127 | 1128 | * firmware as of be61355f9e 1129 | 1130 | -- Alex Bradbury Sun, 22 Jul 2012 21:11:56 +0100 1131 | 1132 | raspberrypi-firmware (1.20120714-1) unstable; urgency=low 1133 | 1134 | * firmware as of 1309b3d512 1135 | 1136 | -- Alex Bradbury Sun, 15 Jul 2012 18:09:10 +0100 1137 | 1138 | raspberrypi-firmware (1.20120712-1) unstable; urgency=low 1139 | 1140 | * firmware as of 01c78fe345 1141 | 1142 | -- Alex Bradbury Fri, 13 Jul 2012 10:48:31 +0100 1143 | 1144 | raspberrypi-firmware (1.20120706-2) unstable; urgency=low 1145 | 1146 | * fix /opt/vc/src/hello_pi dest dir on armhf 1147 | * rename /etc/ld.so.conf.d/vmcs.conf to /etc/ld.so.conf.d/00-vmcs.conf so vc 1148 | libs takes precedence over others 1149 | * fix to raspberrypi-bootloader.postinst so it works in fresh install 1150 | 1151 | -- Alex Bradbury Sat, 07 Jul 2012 20:22:20 +0100 1152 | 1153 | raspberrypi-firmware (1.20120706-1) unstable; urgency=low 1154 | 1155 | * firmware as of 467b0b45e1 1156 | * Fix broken setting of ld-linux-armhf.so.3 symlink 1157 | * Add fallback mechanism for detecting current memory split 1158 | 1159 | -- Alex Bradbury Sat, 07 Jul 2012 13:51:37 +0100 1160 | 1161 | raspberrypi-firmware (1.20120701-1) unstable; urgency=low 1162 | 1163 | * firmware as of 0671d601 1164 | * add /lib/ld-linux-armhf.so.3 symlink for armhf 1165 | 1166 | -- Alex Bradbury Wed, 04 Jul 2012 14:57:27 +0100 1167 | 1168 | raspberrypi-firmware (1.20120628-1) unstable; urgency=low 1169 | 1170 | * firmware as of c59283a672 1171 | 1172 | -- Alex Bradbury Sun, 01 Jul 2012 20:58:14 +0100 1173 | 1174 | raspberrypi-firmware (1.20120617-1) unstable; urgency=low 1175 | 1176 | * firmware as of 2c095047f 1177 | 1178 | -- Alex Bradbury Sun, 17 Jun 2012 19:31:13 +0100 1179 | 1180 | raspberrypi-firmware (1.20120614-1) unstable; urgency=low 1181 | 1182 | * firmware as of 1178c4db5 1183 | 1184 | -- Alex Bradbury Thu, 14 Jun 2012 14:37:56 +0100 1185 | 1186 | raspberrypi-firmware (1.0-1) unstable; urgency=low 1187 | 1188 | * Initial release of Debian packaging for the Raspberry Pi "firmware". 1189 | * Based on upstream commit caf963d. 1190 | 1191 | -- Will Thompson Thu, 24 May 2012 12:20:30 +0100 1192 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: raspberrypi-firmware 2 | Priority: optional 3 | Maintainer: KUNBUS GmbH 4 | Build-Depends: debhelper (>= 10) 5 | Standards-Version: 3.9.8 6 | Section: libs 7 | Homepage: https://revolutionpi.de/ 8 | Vcs-Git: https://github.com/RevolutionPi/kernelbakery.git 9 | Vcs-Browser: https://github.com/RevolutionPi/kernelbakery 10 | 11 | Package: raspberrypi-kernel 12 | Section: kernel 13 | Architecture: armel armhf arm64 14 | Multi-Arch: foreign 15 | Depends: ${misc:Depends}, raspberrypi-bootloader (>= 1.20160506-1) 16 | Breaks: raspberrypi-bootloader (<<1.20160324-1) 17 | Replaces: raspberrypi-bootloader (<<1.20160324-1) 18 | Provides: linux-image 19 | Description: Revolution Pi Linux kernel 20 | This package contains the Revolution Pi Linux kernel. 21 | 22 | Package: raspberrypi-kernel-headers 23 | Section: kernel 24 | Architecture: any 25 | Depends: ${shlibs:Depends}, ${misc:Depends} 26 | Provides: linux-headers 27 | Description: Header files for the Revolution Pi Linux kernel 28 | This package provides the architecture-specific kernel header files for 29 | the Revolution Pi Linux kernel, generally used for building out-of-tree 30 | kernel modules. 31 | 32 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Source: http://github.com/raspberrypi/firmware 3 | 4 | Files: 5 | boot/kernel*.img 6 | headers/* 7 | Copyright: 1991-2012 Linus Torvalds and many others 8 | License: GPL-2 9 | This package is free software; you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License version 2 as 11 | published by the Free Software Foundation. 12 | . 13 | This package is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | . 18 | You should have received a copy of the GNU General Public License 19 | along with this package; if not, write to the Free Software 20 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 21 | . 22 | On Debian systems, the complete text of the GNU General Public License version 23 | 2 can be found in `/usr/share/common-licenses/GPL-2'. 24 | -------------------------------------------------------------------------------- /debian/gen_bootloader_postinst_preinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if ! [ -d ../boot ]; then 4 | printf "Can't find boot dir. Run from debian subdir\n" 5 | exit 1 6 | fi 7 | 8 | version=`cat ../extra/uname_string | cut -f 3 -d ' '| sed -Ee 's/(-v[78]l?)?\+$//'` 9 | 10 | printf "#!/bin/sh\n" > raspberrypi-kernel.postinst 11 | printf "#!/bin/sh\n" > raspberrypi-kernel.preinst 12 | 13 | printf "mkdir -p /usr/share/rpikernelhack/overlays\n" >> raspberrypi-kernel.preinst 14 | printf "mkdir -p /boot/overlays\n" >> raspberrypi-kernel.preinst 15 | 16 | for FN in ../boot/*.dtb ../boot/kernel*.img ../boot/COPYING.linux ../boot/overlays/*; do 17 | if ! [ -d "$FN" ]; then 18 | FN=${FN#../boot/} 19 | printf "rm -f /boot/$FN\n" >> raspberrypi-kernel.postinst 20 | printf "dpkg-divert --package rpikernelhack --remove --rename /boot/$FN\n" >> raspberrypi-kernel.postinst 21 | printf "sync\n" >> raspberrypi-kernel.postinst 22 | 23 | printf "dpkg-divert --package rpikernelhack --rename --divert /usr/share/rpikernelhack/$FN /boot/$FN\n" >> raspberrypi-kernel.preinst 24 | fi 25 | done 26 | 27 | cat <> raspberrypi-kernel.preinst 28 | export INITRD=No 29 | if [ -d "/etc/kernel/preinst.d" ]; then 30 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/preinst.d 31 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/preinst.d 32 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/preinst.d 33 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/preinst.d 34 | fi 35 | if [ -d "/etc/kernel/preinst.d/${version}+" ]; then 36 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/preinst.d/${version}+ 37 | fi 38 | if [ -d "/etc/kernel/preinst.d/${version}-v7+" ]; then 39 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/preinst.d/${version}-v7+ 40 | fi 41 | if [ -d "/etc/kernel/preinst.d/${version}-v7l+" ]; then 42 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/preinst.d/${version}-v7l+ 43 | fi 44 | if [ -d "/etc/kernel/preinst.d/${version}-v8+" ]; then 45 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/preinst.d/${version}-v8+ 46 | fi 47 | EOF 48 | 49 | cat <> raspberrypi-kernel.postinst 50 | export INITRD=No 51 | if [ -d "/etc/kernel/postinst.d" ]; then 52 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/postinst.d 53 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/postinst.d 54 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/postinst.d 55 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/postinst.d 56 | fi 57 | if [ -d "/etc/kernel/postinst.d/${version}+" ]; then 58 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/postinst.d/${version}+ 59 | fi 60 | if [ -d "/etc/kernel/postinst.d/${version}-v7+" ]; then 61 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/postinst.d/${version}-v7+ 62 | fi 63 | if [ -d "/etc/kernel/postinst.d/${version}-v7l+" ]; then 64 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/postinst.d/${version}-v7l+ 65 | fi 66 | if [ -d "/etc/kernel/postinst.d/${version}-v8+" ]; then 67 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/postinst.d/${version}-v8+ 68 | fi 69 | 70 | # wheezy and jessie images shipped with a "kunbus" overlay 71 | /bin/sed -i -e 's/^dtoverlay=kunbus/dtoverlay=revpi-core/' /boot/config.txt 72 | 73 | # wheezy and jessie images enabled this RTC which is now 74 | # duplicated by "revpi-core" overlay 75 | /bin/sed -i -e '/^dtoverlay=i2c-rtc,pcf2127$/d' /boot/config.txt 76 | 77 | # update dt-blob.bin 78 | /bin/sed -n -e '/^dtoverlay=revpi-/s/^dtoverlay=//p' /boot/config.txt | 79 | while read machine ; do 80 | if [ -e "/boot/overlays/\${machine}-dt-blob.dtbo" ] ; then 81 | /bin/cp "/boot/overlays/\${machine}-dt-blob.dtbo" /boot/dt-blob.bin 82 | fi 83 | done 84 | 85 | # 8192cu is unreliable on 4.9, blacklist it and unblacklist rtl8192cu 86 | if [ -f /etc/modprobe.d/blacklist-rtl8192cu.conf ]; then 87 | if ! /bin/grep -Eq "^blacklist 8192cu" /etc/modprobe.d/blacklist-rtl8192cu.conf ; then 88 | echo "blacklist 8192cu" >> /etc/modprobe.d/blacklist-rtl8192cu.conf 89 | fi 90 | /bin/sed -i -e '/^blacklist rtl8192cu/s/^/#/' /etc/modprobe.d/blacklist-rtl8192cu.conf 91 | fi 92 | 93 | # Remove deprecated "elevator=deadline" from the cmdline.txt 94 | # We will only do anything if we are certain that the user has not modfified the 95 | # relevant part of the cmdline. 96 | if /bin/grep -Fq "rootfstype=ext4 elevator=deadline fsck.repair=yes" /boot/cmdline.txt ; then 97 | sed -i -e 's/rootfstype=ext4 elevator=deadline fsck.repair=yes/rootfstype=ext4 fsck.repair=yes/' /boot/cmdline.txt 98 | fi 99 | EOF 100 | 101 | printf "#DEBHELPER#\n" >> raspberrypi-kernel.postinst 102 | printf "#DEBHELPER#\n" >> raspberrypi-kernel.preinst 103 | 104 | printf "#!/bin/sh\n" > raspberrypi-kernel.prerm 105 | printf "#!/bin/sh\n" > raspberrypi-kernel.postrm 106 | printf "#!/bin/sh\n" > raspberrypi-kernel-headers.postinst 107 | 108 | cat <> raspberrypi-kernel.prerm 109 | export INITRD=No 110 | if [ -d "/etc/kernel/prerm.d" ]; then 111 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/prerm.d 112 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/prerm.d 113 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/prerm.d 114 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/prerm.d 115 | fi 116 | if [ -d "/etc/kernel/prerm.d/${version}+" ]; then 117 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/prerm.d/${version}+ 118 | fi 119 | if [ -d "/etc/kernel/prerm.d/${version}-v7+" ]; then 120 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/prerm.d/${version}-v7+ 121 | fi 122 | if [ -d "/etc/kernel/prerm.d/${version}-v7l+" ]; then 123 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/prerm.d/${version}-v7l+ 124 | fi 125 | if [ -d "/etc/kernel/prerm.d/${version}-v8+" ]; then 126 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/prerm.d/${version}-v8+ 127 | fi 128 | EOF 129 | 130 | cat <> raspberrypi-kernel.postrm 131 | export INITRD=No 132 | if [ -d "/etc/kernel/postrm.d" ]; then 133 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/postrm.d 134 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/postrm.d 135 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/postrm.d 136 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/postrm.d 137 | fi 138 | if [ -d "/etc/kernel/postrm.d/${version}+" ]; then 139 | run-parts -v --report --exit-on-error --arg=${version}+ --arg=/boot/kernel.img /etc/kernel/postrm.d/${version}+ 140 | fi 141 | if [ -d "/etc/kernel/postrm.d/${version}-v7+" ]; then 142 | run-parts -v --report --exit-on-error --arg=${version}-v7+ --arg=/boot/kernel7.img /etc/kernel/postrm.d/${version}-v7+ 143 | fi 144 | if [ -d "/etc/kernel/postrm.d/${version}-v7l+" ]; then 145 | run-parts -v --report --exit-on-error --arg=${version}-v7l+ --arg=/boot/kernel7l.img /etc/kernel/postrm.d/${version}-v7l+ 146 | fi 147 | if [ -d "/etc/kernel/postrm.d/${version}-v8+" ]; then 148 | run-parts -v --report --exit-on-error --arg=${version}-v8+ --arg=/boot/kernel8.img /etc/kernel/postrm.d/${version}-v8+ 149 | fi 150 | EOF 151 | 152 | cat <> raspberrypi-kernel-headers.postinst 153 | export INITRD=No 154 | if [ -d "/etc/kernel/header_postinst.d" ]; then 155 | run-parts -v --verbose --exit-on-error --arg=${version}+ /etc/kernel/header_postinst.d 156 | run-parts -v --verbose --exit-on-error --arg=${version}-v7+ /etc/kernel/header_postinst.d 157 | run-parts -v --verbose --exit-on-error --arg=${version}-v7l+ /etc/kernel/header_postinst.d 158 | run-parts -v --verbose --exit-on-error --arg=${version}-v8+ /etc/kernel/header_postinst.d 159 | fi 160 | 161 | if [ -d "/etc/kernel/header_postinst.d/${version}+" ]; then 162 | run-parts -v --verbose --exit-on-error --arg=${version}+ /etc/kernel/header_postinst.d/${version}+ 163 | fi 164 | 165 | if [ -d "/etc/kernel/header_postinst.d/${version}-v7+" ]; then 166 | run-parts -v --verbose --exit-on-error --arg=${version}-v7+ /etc/kernel/header_postinst.d/${version}-v7+ 167 | fi 168 | 169 | if [ -d "/etc/kernel/header_postinst.d/${version}-v7l+" ]; then 170 | run-parts -v --verbose --exit-on-error --arg=${version}-v7l+ /etc/kernel/header_postinst.d/${version}-v7l+ 171 | fi 172 | 173 | if [ -d "/etc/kernel/header_postinst.d/${version}-v8+" ]; then 174 | run-parts -v --verbose --exit-on-error --arg=${version}-v8+ /etc/kernel/header_postinst.d/${version}-v8+ 175 | fi 176 | EOF 177 | 178 | printf "#DEBHELPER#\n" >> raspberrypi-kernel.prerm 179 | printf "#DEBHELPER#\n" >> raspberrypi-kernel.postrm 180 | printf "#DEBHELPER#\n" >> raspberrypi-kernel-headers.postinst 181 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | #DEBHELPER# 4 | 5 | if [ "$1" = "configure" ]; then 6 | ldconfig; 7 | fi 8 | 9 | if [ "$(dpkg --print-architecture)" = armhf ]; then 10 | ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3 2>/dev/null || true 11 | fi 12 | 13 | if [ -e /etc/asound.conf ]; then 14 | if grep -q "mmap_emul" /etc/asound.conf && ! grep -q "LEAVE_ME_ALONE" /etc/asound.conf; then 15 | printf "mmap_emul is set in /etc/asound.conf, disabling it as it is no longer necessary\n" 16 | printf "If you are (for instance) using an external USB soundcard that needs mmap_emul," 17 | printf "add the string LEAVE_ME_ALONE to your /etc/asound.conf as a comment\n" 18 | printf "If you don't know what an /etc/asound.conf is, don't worry about this message\n" 19 | mv /etc/asound.conf /etc/asound.conf.disabled 20 | fi 21 | fi 22 | -------------------------------------------------------------------------------- /debian/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | #DEBHELPER# 4 | 5 | if [ "$1" = "remove" ]; then 6 | ldconfig; 7 | fi 8 | -------------------------------------------------------------------------------- /debian/raspberrypi-kernel-headers.install: -------------------------------------------------------------------------------- 1 | headers/usr / 2 | headers/lib / 3 | -------------------------------------------------------------------------------- /debian/raspberrypi-kernel.install: -------------------------------------------------------------------------------- 1 | boot/overlays 2 | boot/*.dtb 3 | boot/kernel*.img 4 | boot/COPYING.linux 5 | modules /lib/ 6 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # This file was originally written by Joey Hess and Craig Small. 5 | # As a special exception, when this file is copied by dh-make into a 6 | # dh-make output file, you may use that output file without restriction. 7 | # This special exception was added by Craig Small in version 0.37 of dh-make. 8 | 9 | # Uncomment this to turn on verbose mode. 10 | #export DH_VERBOSE=1 11 | 12 | %: 13 | dh $@ 14 | 15 | override_dh_strip: 16 | # don't strip anything 17 | 18 | override_dh_shlibdeps: 19 | # this is not happy on armhf, let's just skip it 20 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /debian/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | copy_files() { 4 | builddir=$1 5 | destdir="headers/usr/src/linux-headers-$version" 6 | mkdir -p "$destdir" 7 | mkdir -p "headers/lib/modules/$version" 8 | rsync -aHAX \ 9 | --files-from=<( 10 | cd linux 11 | find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl | grep -E -v '^\./debian' 12 | ) linux/ "$destdir/" 13 | rsync -aHAX \ 14 | --files-from=<( 15 | cd linux 16 | find "arch/${ARCH}/include" include scripts -type f 17 | ) linux/ "$destdir/" 18 | rsync -aHAX \ 19 | --files-from=<( 20 | cd linux 21 | find "arch/${ARCH}" -name module.lds -o -name Kbuild.platforms -o -name Platform 22 | ) linux/ "$destdir/" 23 | rsync -aHAX \ 24 | --files-from=<( 25 | cd linux 26 | find "arch/${ARCH}" -name include -type d -print0 -o -name scripts -type d -print0 | 27 | xargs -0 -I '{}' find '{}' -type f 28 | ) \ 29 | linux/ \ 30 | "$destdir/" 31 | rsync -aHAX \ 32 | --files-from=<( 33 | cd "$builddir" 34 | find "arch/${ARCH}/include" Module.symvers .config include scripts -type f 35 | ) "$builddir" "$destdir/" 36 | 37 | # search for artifacts which have been built for host architecture and remove them 38 | HOST_ELF=$(file -L /bin/true | grep -oP 'ELF [\w\- ]+, \K[\w\- ]+') 39 | find "$destdir/scripts" -type f -exec file {} + | grep -E "ELF .* $HOST_ELF," | cut -d: -f1 | xargs --no-run-if-empty rm 40 | find "$destdir/scripts" -type f -name '*.cmd' -exec rm {} + 41 | 42 | ln -sf "/usr/src/linux-headers-$version" "headers/lib/modules/$version/build" 43 | 44 | ( 45 | cd linux 46 | make "${make_opts[@]}" -j"$NPROC" INSTALL_KBUILD_PATH="../$destdir" kbuild_install 47 | ) 48 | } 49 | 50 | NPROC=$(nproc) || NPROC=8 51 | 52 | if [ -z "$LINUXDIR" ]; then 53 | echo "Usage: LINUXDIR= [PIKERNELMODDIR=] $(basename "$0")" \ 54 | "[-a armv6]" 1>&2 55 | exit 1 56 | elif [ ! -d "$LINUXDIR" ]; then 57 | echo 1>&2 "LINUXDIR defined as $LINUXDIR, but folder not found on disk." 58 | exit 1 59 | fi 60 | 61 | if [ "$1" = "-a" ] && [ "$2" = "armv6" ]; then 62 | echo "armv6 build enabled" 1>&2 63 | ENABLE_ARMV6=1 64 | fi 65 | 66 | if [ -n "$PIKERNELMODDIR" ]; then 67 | if [ ! -d "$PIKERNELMODDIR" ]; then 68 | echo 1>&2 "PIKERNELMODDIR defined as $PIKERNELMODDIR, but folder not found on disk." 69 | exit 1 70 | fi 71 | fi 72 | 73 | HOST_ARCH="$(uname -m)" 74 | ARCH=${ARCH:-arm} 75 | case "$ARCH" in 76 | arm) 77 | if ! grep -q -E "armv(6l|7|7l)" <<<"$HOST_ARCH"; then 78 | CROSS_COMPILE=arm-linux-gnueabihf- 79 | fi 80 | # CM1=6 CM3=7 CM4=7l (32 bit kernel) 81 | # CM1=6 is no longer enabled by default 82 | if [ "$ENABLE_ARMV6" ]; then 83 | kernel_versions="6 " 84 | fi 85 | kernel_versions+="7 7l" 86 | ;; 87 | arm64) 88 | if [ "$HOST_ARCH" != "aarch64" ]; then 89 | CROSS_COMPILE=aarch64-linux-gnu- 90 | fi 91 | # CM3/CM4S/CM4=8 (64 bit kernel) 92 | kernel_versions="8" 93 | ;; 94 | *) 95 | echo 1>&2 "Unsupported architecture: ${ARCH}" 96 | exit 1 97 | ;; 98 | esac 99 | 100 | INSTDIR=$(dirname "$0") 101 | if [ "${INSTDIR#/}" == "$INSTDIR" ]; then INSTDIR="$PWD/$INSTDIR"; fi 102 | INSTDIR=${INSTDIR%%/debian} 103 | BUILDDIR_TEMPLATE=$INSTDIR/kbuild 104 | KBUILD_BUILD_TIMESTAMP="$(dpkg-parsechangelog -SDate)" 105 | export KBUILD_BUILD_TIMESTAMP 106 | export KBUILD_BUILD_USER="support" 107 | export KBUILD_BUILD_HOST="kunbus.com" 108 | export ARCH 109 | export CROSS_COMPILE 110 | # shellcheck disable=SC2016 111 | make_opts=(CFLAGS_KERNEL='-fdebug-prefix-map=$LINUXDIR=.' CFLAGS_MODULE='-fdebug-prefix-map=$LINUXDIR=.' O="$BUILDDIR_TEMPLATE") 112 | 113 | # use ccache if available and kernelbakery was invoked with USE_CCACHE=1 114 | if [ -e /usr/bin/ccache ] && [ ${USE_CCACHE:-0} == 1 ]; then 115 | CROSS_COMPILE="ccache $CROSS_COMPILE" 116 | fi 117 | 118 | if [ ! -L "$INSTDIR/linux" ]; then 119 | ln -sf "$LINUXDIR" "$INSTDIR/linux" 120 | fi 121 | 122 | [ -d "$INSTDIR/boot/overlays" ] || mkdir "$INSTDIR/boot/overlays" 123 | 124 | # cleanup from previous builds 125 | rm -rf "$INSTDIR/headers" 126 | rm -f "$INSTDIR/boot/broadcom"/*.dtb "$INSTDIR/boot"/*.dtb "$INSTDIR/boot/overlays"/*.dtbo "$INSTDIR/boot"/kernel*.img 127 | rm -rf modules/* 128 | 129 | for kernel_version in $kernel_versions; do 130 | defconfig="revpi-v${kernel_version}_defconfig" 131 | test -f "linux/arch/${ARCH}/configs/$defconfig" || continue 132 | builddir=${BUILDDIR_TEMPLATE}${kernel_version/6/} 133 | make_opts[-1]="O=${builddir}" 134 | 135 | rm -rf "$builddir" 136 | mkdir "$builddir" 137 | 138 | # build kernel 139 | ( 140 | cd linux 141 | make "${make_opts[@]}" $defconfig 142 | ) 143 | if [ "$ARCH" == "arm64" ]; then 144 | ( 145 | cd linux 146 | make "${make_opts[@]}" -j$NPROC Image modules 2>&1 147 | ) 148 | else 149 | ( 150 | cd linux 151 | make "${make_opts[@]}" -j$NPROC zImage modules 2>&1 152 | ) 153 | fi 154 | version="$(cat "$builddir/include/config/kernel.release")" 155 | copy_files "$builddir" 156 | 157 | # build piKernelMod 158 | if [ -d "$PIKERNELMODDIR" ]; then 159 | cd "$PIKERNELMODDIR" 160 | cd - 161 | ( 162 | cd linux 163 | make "${make_opts[@]}" M="$PIKERNELMODDIR" modules 164 | ) 165 | fi 166 | 167 | # install kernel 168 | 169 | if [ "$ARCH" == "arm64" ]; then 170 | # arm64 kernel is uncompressed by default, let's gzip it 171 | cp "$builddir/arch/${ARCH}/boot/Image" "$INSTDIR/boot/kernel8.img" 172 | gzip -9 "$INSTDIR/boot/kernel8.img" 173 | mv "$INSTDIR/boot/kernel8.img"{.gz,} 174 | else 175 | cp "$builddir/arch/${ARCH}/boot/zImage" "$INSTDIR/boot/kernel${kernel_version/6/}.img" 176 | fi 177 | 178 | # install modules 179 | if [ -d "$PIKERNELMODDIR" ]; then 180 | ( 181 | cd linux 182 | make "${make_opts[@]}" -j$NPROC modules_install INSTALL_MOD_PATH="$INSTDIR/modules" M="$PIKERNELMODDIR" 183 | ) 184 | fi 185 | ( 186 | cd linux 187 | make "${make_opts[@]}" -j$NPROC modules_install INSTALL_MOD_PATH="$INSTDIR/modules" 188 | ) 189 | mv "$INSTDIR/modules/lib/modules"/* "$INSTDIR/modules" 190 | rm -r "$INSTDIR/modules/lib" 191 | rm "$INSTDIR/modules"/*/{build,source} 192 | done 193 | 194 | # install dtbs (based on last builddir) 195 | ( 196 | cd linux 197 | make "${make_opts[@]}" -j$NPROC dtbs 2>&1 198 | ) 199 | ( 200 | cd linux 201 | make "${make_opts[@]}" -j$NPROC dtbs_install INSTALL_DTBS_PATH=/tmp/dtb.$$ 202 | ) 203 | if [ "$ARCH" == "arm64" ]; then 204 | mv /tmp/dtb.$$/broadcom/*.dtb "$INSTDIR/boot" 205 | else 206 | mv /tmp/dtb.$$/*.dtb "$INSTDIR/boot" 207 | fi 208 | mv /tmp/dtb.$$/overlays/* "$INSTDIR/boot/overlays" 209 | rmdir /tmp/dtb.$$/* /tmp/dtb.$$ 210 | 211 | [ ! -d "extra" ] && mkdir "extra" 212 | echo "_ _ $version" >extra/uname_string 213 | 214 | find headers -name .gitignore -delete 215 | ( 216 | cd debian 217 | ./gen_bootloader_postinst_preinst.sh 218 | ) 219 | --------------------------------------------------------------------------------