Compare commits

...

300 Commits

Author SHA1 Message Date
faf7dc0227 fix: missing dependencies
Some checks failed
ISO Compile CI/CD / compile-iso (push) Failing after 36m59s
2026-02-20 10:53:46 +01:00
PartialVolume
f5c1da45a9 Merge pull request #468 from desertwitch/upstream-fixes2
Nwipe versioning fixes & add 32-bit EFI to 64-bit builds
2026-02-18 11:57:09 +00:00
desertwitch
b7dcf284c9 chore(board): copy over 32-bit EFI for IMG 2026-02-18 10:58:13 +01:00
desertwitch
95872d0744 fix(nwipe): use less generic variable name 2026-02-18 10:45:23 +01:00
desertwitch
9b9c569e66 fix(nwipe): use sanitized variable 2026-02-18 10:35:40 +01:00
desertwitch
63ad758ad5 fix(nwipe): sanitize global arch variable 2026-02-18 10:33:35 +01:00
desertwitch
68710cedf1 chore(board): add 32-bit EFI to IMG 2026-02-18 10:26:09 +01:00
desertwitch
e2d8217ff8 fix(nwipe): evaluate variables on use 2026-02-18 10:22:40 +01:00
PartialVolume
58399ade5a Merge pull request #467 from desertwitch/smartdmt-readme
Smartdmt documentation
2026-02-18 09:16:48 +00:00
desertwitch
fcd4a17e44 chore(smartdmt): bump default version 2026-02-18 09:30:13 +01:00
desertwitch
5b710a81a6 chore(docs): add smartdmt documentation 2026-02-18 09:30:01 +01:00
desertwitch
6f212156fb chore(nwipe): print out case 2026-02-18 08:51:07 +01:00
desertwitch
03ba568178 chore(nwipe): print out commands 2026-02-18 08:49:33 +01:00
desertwitch
c8f737eb0a chore(nwipe): revert arch dependencies in config
A build may otherwise silently omit building nwipe, and we already check the architecture requirement as part of the pre-configure hook.
2026-02-18 08:13:33 +01:00
desertwitch
e6e4a2bab3 chore(nwipe): add arch dependencies 2026-02-18 08:12:02 +01:00
desertwitch
39d2a25c74 chore(nwipe): rename definition 2026-02-18 08:07:35 +01:00
desertwitch
e1f99a053d chore(nwipe): refactor config 2026-02-18 07:57:39 +01:00
desertwitch
3abe570540 chore(build): always rebuild nwipe for versioning 2026-02-18 07:56:02 +01:00
desertwitch
ecea0be3bd fix(nwipe): version replacement 2026-02-18 07:55:35 +01:00
desertwitch
3200381771 chore(board): add default 32-bit EFI 2026-02-18 07:10:01 +01:00
desertwitch
caf93d8106 chore(iso9660): add 32-bit EFI to 64-bit builds 2026-02-18 07:03:51 +01:00
PartialVolume
2ac8113e93 Merge pull request #465 from desertwitch/ssmart
feat: add SMART monitoring terminal
2026-02-17 23:07:41 +00:00
PartialVolume
54e7f83122 Merge pull request #466 from desertwitch/upstream-fixes2
QoL improvements
2026-02-17 22:32:38 +00:00
desertwitch
3cd5ee3f1e chore(iso9660): combine definitions 2026-02-17 20:28:48 +01:00
desertwitch
e7b2317d05 chore(board): rename iso arch to i686 2026-02-17 18:10:47 +01:00
desertwitch
59ec5813c6 chore(docs): update build targets 2026-02-17 18:10:45 +01:00
desertwitch
b4316be330 chore(board): rename arch to i686 2026-02-17 18:10:39 +01:00
desertwitch
8aeffd36d6 chore(iso9660): refactor for i686 2026-02-17 18:10:35 +01:00
desertwitch
e87c0f7a49 feat: add SMART monitoring terminal 2026-02-17 13:39:15 +01:00
PartialVolume
fd8eb7b898 Merge pull request #462 from PartialVolume/add-memtest86
Added memtest86+ to ShredOS boot menus
2026-02-11 10:36:14 +00:00
PartialVolume
e17537311c Added memtest86+ to both isolinux and grub2 boot menus, included the memtest package in all defconfigs 2026-02-11 10:33:54 +00:00
PartialVolume
92d50b61fd Merge pull request #458 from PartialVolume/update_nwipe_stable_release_selection
Simplify selection of git commit hash or revision tag v0.40 in menuconfig
2026-02-05 01:47:46 +00:00
PartialVolume
fad7da67a1 Simplify selection of git commit hash or revision tag v0.40 etc. by removing the hard coded references to the stable release and have just a single selection in menuconfig where you enter a commit hash or a version tag. This means for future updates I won't need to manually update the hard coded version or comments in nwipe.mk and Config.in that mention v0.40 to keep it relevent, I simply update the version in menuconfig to v0.41. Updated all defconfigs with the new revision string BR2_PACKAGE_NWIPE_GIT_REVISION="v0.40" 2026-02-05 01:42:19 +00:00
PartialVolume
df55edb486 Update README.md
Simplify maintenance of README.md by removing multiple links to latest and previous releases. Just have a single link to the latest release.
2026-02-04 21:31:24 +00:00
PartialVolume
d54617f898 Merge pull request #456 from desertwitch/patch-1
Build script minor clarification/quoting fix
2026-02-04 19:59:55 +00:00
Rysz
1989d7ab13 Fix quoting in directory change command 2026-02-04 14:16:15 +01:00
Rysz
9ae389d461 Clarification in building table comment
Make it clear for future readers that preclean runs a clean before step 0 of the building.
2026-02-04 14:14:52 +01:00
PartialVolume
af01857818 Merge pull request #454 from PartialVolume/update-stable-nwipe-release-to-0.40
Update the nwipe.mk, Config.in and defconfigs from 0.39 to 0.40.
2026-02-04 00:37:59 +00:00
PartialVolume
07f2d5057f Update the nwipe.mk and Config.in from 0.39 to 0.40. Update all defconfigs to stable release (0.40) 2026-02-04 00:36:03 +00:00
PartialVolume
6ab4b901b0 Merge pull request #453 from PartialVolume/ISO9660-volume-name
Make ISO9660 volume name upper case for maximum compatibility.
2026-02-01 00:59:24 +00:00
PartialVolume
ec2bee0a92 Make ISO9660 volume name upper case for maximum compatibility with older bootloaders 2026-02-01 00:57:12 +00:00
PartialVolume
6fd11b61ce Merge pull request #452 from PartialVolume/create-shredos_lite_defconfig
Add a new x86-64 light defconfig for 64bit systems with minimum 512MB RAM
2026-02-01 00:49:01 +00:00
PartialVolume
24e1f872d1 Add a new x86-64 light defconfig for systems manufactured between 2000-2010 with a minimum of 512MB of RAM 2026-02-01 00:45:50 +00:00
PartialVolume
20bdda24af Merge pull request #451 from PartialVolume/rename_and_checksum_images
Add creation of sha1 checksum files and add additional info to image filenames
2026-01-31 23:44:54 +00:00
PartialVolume
e06ba53380 Updated the script build_all_shredos.sh so that if the defconfig is lite or extra then lite and plus-partitionare inserted into the filename immediately prior to the extension. The placing of this extra information at the end of the version information is important. In this position it doesn't interfere with the search that is conducted in the script find_shredos_boot_script.sh in relation to the search for the shredos boot disc. The sha1 checksum is calculated and placed in a file with the same name as the image but with the addition of the extension.sha1. These .sha1 files are also copied to the folder dist/ along with the corresponding .iso or .img file. The addition of this extra information in the filenames makes the files unique amongst the group of build files. This is required when the .iso and .img files are uploaded when a ShredOS release is published 2026-01-31 23:35:15 +00:00
PartialVolume
6ede7ef074 Merge pull request #450 from PartialVolume/sync-shredos_i686_lite_defconfig
Sync i686 defconfigs and update build all script
2026-01-30 21:21:20 +00:00
PartialVolume
e962210590 Sync i686 defconfigs and update build all script 2026-01-30 21:16:31 +00:00
PartialVolume
4d30569cde Merge pull request #449 from PartialVolume/fix_img_build_error
Fix build error
2026-01-30 14:53:06 +00:00
PartialVolume
d893547c0e Fix build error 2026-01-30 14:50:37 +00:00
PartialVolume
828b70df80 Merge pull request #448 from PartialVolume/boot-i686-using-64bit-EFI
Allow shredos i686 builds to boot on 64bit EFI only system that don't have legacy boot options.
2026-01-29 19:54:09 +00:00
PartialVolume
7e198a902e The i686 .iso builds failed to boot on X86-64 systems that only support booting with 64bit efi, i.e no legacy boot option. This was due to bootx64.efi not being included by iso9660.mk when the architecture is i686. Changes were made to iso9660.mk to correct this. 2026-01-29 19:49:33 +00:00
PartialVolume
2e3aff54c4 Merge pull request #447 from PartialVolume/more-updates-to-shredos-iso-extra-i686-defconfig
Updates to defconfigs
2026-01-28 19:16:08 +00:00
PartialVolume
98f1690285 Updates to defconfigs 2026-01-28 19:04:17 +00:00
PartialVolume
e446a26c11 Merge pull request #445 from PartialVolume/update-shredos-iso-extra-i686-defconfig
Update shredos-iso-extra-i686-defconfig
2026-01-28 01:12:33 +00:00
PartialVolume
6e31fca714 Update shredos-iso-extra-i686-defconfig so it's sync'ed with other i686 defconfigs and like other i686 defconfigs it will boot with a minimum of 512MB RAM. 2026-01-28 01:08:23 +00:00
PartialVolume
0ba9d4e6f8 Merge pull request #444 from PartialVolume/remove-iso-legacy-builds
Removed legacy iso defconfigs
2026-01-27 18:34:09 +00:00
PartialVolume
52eef55419 Removed legacy iso defconfigs as the hybrid iso images book on all my test systems and as the legacy are not hybrid and therefore don't boot on USB may cause unnecessary confusion if the user is not aware of their limitation. 2026-01-27 18:25:33 +00:00
PartialVolume
19d7f41b10 Merge pull request #443 from PartialVolume/sync-shredos_iso_legacy_defconfig
sync shredos_iso_legacy_defconfig
2026-01-27 02:44:01 +00:00
PartialVolume
48ba2441d8 sync shredos_iso_legacy_defconfig 2026-01-27 02:43:03 +00:00
PartialVolume
2f3712f2cb Merge pull request #442 from PartialVolume/add-legacy-boot
Added i386 legacy boot
2026-01-27 01:37:16 +00:00
PartialVolume
6ac1d0c6f3 Added i386 legacy boot required to boot one of my systems, EFI USB & CD and legacy USB & CD tested. All booting with shredos_iso_extra_defconfig. Confirmed ShredOS mounts the 50MB extra partition on the USB and uses for configs, logs and PDFs. 2026-01-27 01:34:23 +00:00
PartialVolume
e6a611c612 Sync shredos_iso_extra_defconfig 2026-01-25 19:23:15 +00:00
PartialVolume
233eae18e8 Merge pull request #441 from PartialVolume/update-build_all_shredos.sh
Update build_all_shredos.sh due to change in defconfig names and number of defconfigs
2026-01-25 16:40:55 +00:00
PartialVolume
8e32730ab5 Update the build_all_shredos.sh with refernce to i686 being used as opposed to i586. Update the list of defconfig names and reduce their number from ten to six. The four removed were single builds of either .img or .iso files when the defconfigs that produce both .iso and .img in a single build were considered adequate for our needs. This reduces workload keeping all the defconfigs correctly sync'ed. 2026-01-25 16:36:34 +00:00
PartialVolume
c5851e9501 Merge pull request #440 from PartialVolume/add-openssh-server
Add ssh logins as alternative to telnet
2026-01-24 00:52:38 +00:00
PartialVolume
a981af81bf add openssh server, root login disabled as default in /etc/ssh/sshd_config. Introduced ssh login for those not wishing to use telnetd. Main use being to access headless systems due to no graphics system or faulty graphics system. I'm open to discussions for those interested in ssh logins how best to implement this in practise or is it ok as is? 2026-01-24 00:49:02 +00:00
PartialVolume
e7c1bde3c6 Remove old copy of file archive_log.sh.new 2026-01-22 20:00:31 +00:00
PartialVolume
9819b70435 Merge pull request #439 from PartialVolume/remove-unwanted-defconfigs
Remove defconfigs that are surplus to requirements
2026-01-22 19:51:36 +00:00
PartialVolume
405a211b24 Remove defconfigs that are surplus to requirements and don't really provide anything that the other defconfigs already provide. Their removal also helps to reduce my workload keeping all the defconfigs in sync with one another. 2026-01-22 19:46:55 +00:00
PartialVolume
1186a5fe80 Merge pull request #438 from PartialVolume/add-ntfs-3g
Add ntfs-3g to all defconfigs
2026-01-22 19:34:19 +00:00
PartialVolume
db6ad14377 Add ntfs-3g for r/w access to NTFS (Microsoft basic data) formatted drives for backing up PDF, logs and nwipe config files. 2026-01-22 19:31:09 +00:00
PartialVolume
0bd9f53fd0 Merge pull request #437 from PartialVolume/fix-USB-storage-device-not-being-identified
Fix #342 and #385 by adding RW support for NTFS (Microsoft basic data)
2026-01-22 11:08:09 +00:00
PartialVolume
3ba5beaf17 Fixed the issues (#342 and #385) where a Ventoy USB memory stick that was formatted as GPT with NTFS (Type:Microsoft Basic Data) was unable to have config, PDFs and log files written to it as it was being mounted read only. This was corrected by installing BR2_PACKAGE_NTFS_3G, deinstalling the busybox mount command and installing mount from the util-linux package. I also fixed an issue that occurs when multiple formatted discs exist on the system and the user pulls the ShredOS USB boot device out after booting. In that circumstance, when it's time for ShredOS to backup PDFs, logs and configs it attempts to write them first to a disc that is identified as the ShredOS boot disc, if it fails it then looks for the first disc with a mountable partition and writes the PDFs, log and configs to that disc. Unfortunately if the disc failed to mount it wouldn't then go on and search for other disks, it would assume the mount completed ok. The save of PDFs etc, would then fail. This was also fixed so the mount return status is now checked and if it fails it now continues its search. 2026-01-22 11:02:09 +00:00
PartialVolume
4fe795cab5 Merge pull request #436 from PartialVolume/add-minimal-graphics-firmware-to-i686-lite
Added legacy firmware to shredos_i686_lite_defconfig
2026-01-21 19:12:11 +00:00
PartialVolume
1390bf9e68 Commit relevant to shredos_i686_lite_defconfig only. Added some graphics firmware for Radeon, Intel that have a small footprint, avoiding AMDGPU for graphics hardware post circa 2010 while maintaining that shredos_i686_lite will boot in 512MB of RAM (but not 256MB). Created a separate kernel backup file for all i686 builds called kernel_i686_defconfig as switching between x86-64 and i686 and back could cause some settings to disappear in the kernel backup file if committed. Replaced the busybox version of lspci with the full pciutils version. 2026-01-21 14:07:23 +00:00
PartialVolume
8b7c69305e Merge pull request #435 from PartialVolume/auto-update-nwipe-version-in-banner
Auto update nwipe banner and version.txt with version tag or commit SHA, examples
ShredOS v2025.11_28_i686_26ece7a-commit-dev
ShredOS v2025.11_28_i686_v0.39
2026-01-18 22:39:25 +00:00
PartialVolume
71aa5fe168 The nwipe banner is updated automatically with the the release version such as v0.39, v0.40 ... or if the developer has chosen to compile a version of nwipe based on a commit full SHA then the banner will show the first 7 characters of the commit followed by commit-dev. i.e ShredOS v2025.11_28_i686_26ece7a-commit-dev 2026-01-18 22:27:18 +00:00
PartialVolume
d3fba815ef Merge pull request #434 from PartialVolume/auto-update-architecture-in-nwipe-banner
Automatically update banner with correct architecture during nwipe build
2026-01-17 23:28:39 +00:00
PartialVolume
7c48bb4f9d Prior to building nwipe, determine architecture and update the nwipe banner as appropriate, either i686 or x86-64. Prior to this patch the banner was hardcoded and had to be manually edited in board/shredos/fsoverlay/etc/shredos/version.txt. When switching between architectures the banner will be automatically updated and manual editing of architecture is no longer necessary. 2026-01-17 23:25:59 +00:00
PartialVolume
77db54a4dc Merge pull request #433 from PartialVolume/dynamically-calculate-partition-size
Dynamically calculate vfat size based on bzImage size plus 20MB
2026-01-17 01:02:19 +00:00
PartialVolume
73200ac892 Modified make_img_file.sh so that the vfat partition size is dynamically calculated based on the bzImage size plus an arbitary 20MB added to accommodate the extra files including PDF reports and logs. 2026-01-17 00:59:46 +00:00
PartialVolume
3aa170ada4 Merge pull request #432 from PartialVolume/rename-i586-defconfigs
Rename i586 defconfigs to i686
2026-01-16 22:47:59 +00:00
PartialVolume
ef58bfa2d8 Rename i586 defconfigs to i686 2026-01-16 22:45:21 +00:00
PartialVolume
728b792cac Merge pull request #431 from PartialVolume/add-img-creation-to-i586-lite
shredos_i686_lite_defconfig now creates both .iso and .img image files
2026-01-16 22:29:47 +00:00
PartialVolume
3cf5c1e5c9 shredos_i686_lite_defconfig now creates both .img and .iso images, renamed defconfig file from shredos_i586_lite_defconfig to shredos_i686_lite_defconfig 2026-01-16 22:23:57 +00:00
PartialVolume
160e655731 Merge pull request #430 from PartialVolume/update_i586_lite_kbd
Fix f keystroke (font size) in shredos_i586_lite_defconfig
2026-01-16 01:32:04 +00:00
PartialVolume
bc790b9be0 Added BR2_PACKAGE_KBD=y which is required for the f keystroke in nwipe when running in ShredOS. KBD provides setfont which doubles the size of the font. 2026-01-16 01:26:38 +00:00
PartialVolume
7d0e54cb8c Merge pull request #429 from PartialVolume/update-i586-lite
Update shredos_i586_lite_defconfig plus tidy up
2026-01-16 00:23:11 +00:00
PartialVolume
fb2af5b5e5 nwipe aes failed to compile due to missing g++ compiler code for gcc, added smartmontools so nwipes reports were complete. Added various smaller programs that don't require much space like hexedit. Added NTP so RTC is accurate if connected to a network. Despite these additions ShredOS_i586_lite_defconfig will still boot with only 256MB CPU RAM required. 2026-01-16 00:19:19 +00:00
Fabian Druschke
6708c3f861 Legacy lite iso defconfig (#428)
* Created minimal i586 compatible defconfig

* Refined minimal i586 defconfig, and added missing shell interpreter
2026-01-16 00:06:36 +00:00
PartialVolume
92aa64707d Updated i686 build by removing Linux firmware, mainly graphics firmware and added BR2_i386=y 2026-01-15 00:48:46 +00:00
PartialVolume
25570b8b7a Merge pull request #426 from PartialVolume/i586
Updated shredos_i586_defconfig so it is sync'ed with shredos_defconfig
2026-01-13 23:50:33 +00:00
PartialVolume
436e4ec558 Updated shredos_i586_defconfig so it is generally sync'ed with shredos_defconfig, except for the necessary differences for i686 support. Unfortunately something has changed between kernel release 6.15 and 6.18. i586 is no longer supported, i686 should be but the kernel fails to load. 2026-01-13 23:44:56 +00:00
PartialVolume
53ff6d0b1f Merge pull request #425 from PartialVolume/fix-iso-1
Correct the path for iso config files.
2026-01-12 14:57:29 +00:00
PartialVolume
41babc35b3 Correct the path for iso config files. 2026-01-12 14:56:09 +00:00
PartialVolume
e36af7c0c8 Restored some changes related to ISO9660 builds 2026-01-12 13:42:01 +00:00
PartialVolume
ebf6f9d355 Merge pull request #423 from PartialVolume/update-to-nwipe-master-for-testing
Update nwipe to last commit in master for testing
2026-01-11 20:13:34 +00:00
PartialVolume
f6ce3e3e64 Update nwipe to last commit in master for testing before release of nwipe 2026-01-11 20:11:17 +00:00
PartialVolume
21e02a3cf8 Merge pull request #422 from PartialVolume/update-revision-banner
Update revision banner as shown in nwipe to 2025.11_28_x86-64_0.40
2026-01-11 15:57:31 +00:00
PartialVolume
70b99a4530 Update revision banner as shown in nwipe to 2025.11_28_x86-64_0.40 2026-01-11 15:55:54 +00:00
PartialVolume
16933b883c Remove obsolete package files and folders 2026-01-11 15:26:52 +00:00
PartialVolume
f13ccbc889 Merge pull request #421 from PartialVolume/add-two-missing-video-modules-to-grub
Add video and video_fb modules to grub legacy and EFI
2026-01-11 14:03:56 +00:00
PartialVolume
763e5a13ec Add video and video_fb modules to grub legacy and EFI 2026-01-11 13:55:12 +00:00
PartialVolume
2207e01415 Merge pull request #420 from PartialVolume/revert-nvme-cli-to-2.15
Revert nvme from 2.16 to 2.15 as provided by buildroot
2026-01-11 12:13:51 +00:00
PartialVolume
c5896c2e44 Revert nvme from 2.16 to 2.15 as provided by buildroot 2026-01-11 12:12:25 +00:00
PartialVolume
cbfae94bc0 Merge pull request #419 from PartialVolume/upgrade_nvme-cli
Upgraded nvme-cli to v2.16
2026-01-10 15:30:43 +00:00
PartialVolume
540d0d49d7 Upgraded nvme-cli to v2.16 2026-01-10 15:19:32 +00:00
PartialVolume
acd8f5976f Give custom kernel defconfig file a name not related to the kernel version, so I don't have to keep changing it everytime I upgrade the kernel. 2026-01-10 15:03:49 +00:00
PartialVolume
cb7442500d Merge pull request #418 from PartialVolume/upgrade-Seagate's-OpenSeaChest
Upgraded Seagate's openSeaChest tools to 25.05.3 and restored busybox to it's default location.
2026-01-09 00:29:25 +00:00
PartialVolume
82c1387ab0 Upgraded Seagate's openSeaChest tools to 25.05.3 and restored busybox.config back to it's default location 2026-01-09 00:23:52 +00:00
PartialVolume
0bc266b783 Merge pull request #417 from PartialVolume/Move_busybox_and_install_telnetd
Moved busybox.config to board/shredos and installed telnetd
2026-01-08 22:02:12 +00:00
PartialVolume
9837083d98 Moved busybox.config to board/shredos and installed telnetd 2026-01-08 21:54:42 +00:00
PartialVolume
80f9de5331 Merge pull request #416 from PartialVolume/Upgrade-to-Buildroot-2025.11
Updated ShredOS to Buildroot 2025.11, kernel 6.18.0
2026-01-07 10:15:31 +00:00
PartialVolume
c525a2ff71 Updated ShredOS to Buildroot 2025.11, kernel 6.18.0 2026-01-06 22:53:29 +00:00
PartialVolume
d9b225e4c4 Update README.md 2025-12-30 20:55:48 +00:00
PartialVolume
26d86c6d47 Update README.md
Fix formatting
2025-12-30 20:38:05 +00:00
PartialVolume
c3d6ec6673 Update README.md
Information about oom killer being activated during a build and how to resolve it.
2025-12-30 20:33:54 +00:00
PartialVolume
47dc200bc9 Merge pull request #412 from PartialVolume/add-amd-iommu
Added AMD and Intel IOMMU, Virtio drivers.
2025-12-19 12:05:33 +00:00
PartialVolume
460d6ab764 Added AMD and Intel IOMMU, Virtio drivers. Pointed nwipe to current master for testing as of 19/Dec/2025 2025-12-19 12:02:21 +00:00
PartialVolume
98c1fd0e45 Merge pull request #409 from PartialVolume/increase-lftp-retries
Increase lftp retries from 1 to 100
2025-12-09 23:20:52 +00:00
PartialVolume
18cb3d9d92 Increase lftp retries from 1 to 100 2025-12-09 23:18:50 +00:00
PartialVolume
5dde57d4db Merge pull request #408 from PartialVolume/honour-pdf-path
Honour pdf path in nwipe command line options -P path and --PDFreportpath=path
2025-12-09 21:37:38 +00:00
PartialVolume
3f4bbf29a9 Tidy up pdf path extraction 2025-12-09 20:36:53 +00:00
PartialVolume
77785fec8e If the user has specified an nwipe option PDFreportpath= or -P path then create that path on the USB and copy the PDF files to it 2025-12-09 19:26:01 +00:00
PartialVolume
21381e4ab9 Execute permissions added to shredos_net.sh 2025-12-05 22:22:53 +00:00
PartialVolume
0649641da1 Bump minor version and mark as development 2025-12-05 20:10:58 +00:00
PartialVolume
8db5d42b6a Merge pull request #404 from PartialVolume/add-nonet-option
Add kernel command line flags, nonet and shredos_nonet
2025-12-05 20:03:12 +00:00
PartialVolume
b190567aa1 Add kernel command line flags, nonet and shredos_nonet that disable the network 2025-12-05 20:00:19 +00:00
PartialVolume
f56ff5e12a Merge pull request #403 from PartialVolume/update_networking
Fix repeating ifup when no RJ45 link
2025-12-05 19:08:39 +00:00
PartialVolume
847f761d5a Fix repeating ifup when no RJ45 link 2025-12-05 18:51:47 +00:00
PartialVolume
2256913d01 Merge pull request #396 from desertwitch/virtio
feat: add kernel support for virtualized HDDs
2025-12-05 14:39:56 +00:00
desertwitch
1462b1c48f feat: add kernel support for virtualized HDDs
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-27 08:05:01 +01:00
PartialVolume
8f675cdc65 Merge pull request #322 from Knogle/use-git-method
package/nwipe: switch from static tarball to Git commit (051e1aa)
2025-11-26 19:57:40 +00:00
Fabian Druschke
f053132049 package/nwipe: switch from static tarball to Git commit (051e1aa)
This commit updates the nwipe package to build from a specific Git commit
instead of using the previously referenced tarball release. The changes
include:

- Setting NWIPE_SITE to the GitHub repository and NWIPE_SITE_METHOD to git.
- Specifying the commit hash (051e1aa) in NWIPE_VERSION.
- Removing or emptying the nwipe.hash file, as we no longer verify a tarball
  and instead rely on the Git checkout.

This approach allows ShredOS/Buildroot to clone the nwipe repository at
commit 051e1aa, apply the banner patch, and build the nwipe binary directly
from Git.
2025-11-26 17:32:27 +01:00
PartialVolume
26e1cdef75 Merge pull request #395 from Knogle/enable-af-alg-crypto
board/shredos: enable crypto options for future AF_ALG AES-CTR support
2025-11-25 01:18:04 +00:00
PartialVolume
410032c593 Merge pull request #393 from desertwitch/pr-devel
Refactor of booting, building and configurations
2025-11-25 01:14:56 +00:00
Fabian Druschke
e579514bfe board/shredos: enable crypto options for future AF_ALG AES-CTR support
Enable additional cryptographic kernel options required for using
AES-CTR via the AF_ALG userspace interface in future features:

- CONFIG_CRYPTO_PCRYPT: parallel crypto wrapper for symmetric ciphers
- CONFIG_CRYPTO_USER_API_SKCIPHER: AF_ALG user API for skcipher
- CONFIG_CRYPTO_AES_NI_INTEL: AES-NI accelerated AES implementation on x86_64

These options prepare the kernel for an AF_ALG-based AES-CTR PRNG and
other potential AF_ALG-backed cryptographic functionality in nwipe.
2025-11-24 16:30:52 +01:00
desertwitch
046c1bd1c9 chore: clarification in documentation
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 10:15:50 +01:00
desertwitch
0f77cd2a7f fix(iso9660): menu indentation
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 10:00:21 +01:00
desertwitch
ef68188207 fix(iso9660): menu ordering
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 09:51:07 +01:00
desertwitch
fc80af2fb4 fix(iso9660): use buildroot rm, adapt comment
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 09:41:39 +01:00
desertwitch
d5ae3d10f6 chore: adapt documentation for current state
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 09:27:13 +01:00
desertwitch
2120a2d87a fix(configs): add missing argument
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 08:10:46 +01:00
desertwitch
6c49c40922 chore: adapt documentation for current state
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 08:04:34 +01:00
desertwitch
023c549337 feat(iso9660): add volume name and partition type as options
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-22 07:55:46 +01:00
desertwitch
4fd5642d16 feat(iso9660): appendable partition image for hybrid modes
Allow to append a FAT16 partition image when building an ISO in hybrid mode.

This allows to add an extra writeable partition for when the ISO is burned to USB.

This feature is experimental and disabled by default.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-21 17:59:33 +01:00
desertwitch
1635894f8e fix(configs): revert partition size and post processing for EFI
The EFI partition for hybrid ISOs does not reliably show on all Windows systems, so we cannot use our "hack" of writing the configurations/PDFs to it. Reverted instead to a sane-sized EFI partition which is used just for booting. Added a note to the README that some tools such as Rufus support an ISO-mode to add a writeable partition at burning-time.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-21 11:17:05 +01:00
desertwitch
2291b2fdbc chore(configs): clean up configurations
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-21 07:18:39 +01:00
desertwitch
b7e304a292 fix(iso9660): account for both mode without hybrid
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-21 06:48:39 +01:00
desertwitch
d417261a76 chore: reorganize all files into board/shredos
It is more convenient to not have to search for configuration files in different directories, and also helpful to see the standard configuration files, so move all ShredOS configurations into board/shredos.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 14:15:43 +01:00
desertwitch
589f08752a fix(buildscript): use reconfigure instead of rebuild
Reconfigure starts one stage before rebuild, just to be safe. It is the earliest step after the source download and patching.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 12:15:01 +01:00
desertwitch
2134454147 fix: amend buildscript
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 10:00:47 +01:00
desertwitch
2035670a8e chore: update documentation
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 08:11:59 +01:00
desertwitch
15b889ddf9 chore: add warning about customization to ISO
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 08:04:51 +01:00
desertwitch
2e90372692 chore: update buildscript and documentation
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-20 07:20:58 +01:00
desertwitch
66e7c16de3 fix: embed grub finder configuration
Helps GRUB find the ShredOS volume when it otherwise cannot (such as when the IMG is used with Ventoy in BIOS)

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-19 13:29:37 +01:00
desertwitch
39cb0dd4f7 feat: add basic multi-build script
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-19 08:26:45 +01:00
desertwitch
f0db7fc78a feat(configs): make default configs build USB image and AIO hybrid ISO
The all-in-one ISO works well and is the jack-of-all-trades, covering all imaginable systems and scenarios, so include that in the default build configurations.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-19 07:12:19 +01:00
desertwitch
f9182d0580 chore(iso9660): add partition size documentation
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 22:36:50 +01:00
desertwitch
efac080389 chore: update readme for new changes
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 18:49:36 +01:00
desertwitch
c3ac56cba2 feat(configs,shredos): add aio iso configuration
This adds a configuration for a jack-of-all-trades ISO, which allows BIOS and UEFI booting, being written to CD/DVD-ROM and USB drives, as well as having a writeable partition when being used from an USB drive. It basically combines the functionality of all prior release versions into one single ISO (per architecture).

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 18:49:35 +01:00
desertwitch
7959e04e1d chore: clarification in readme
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 18:49:34 +01:00
desertwitch
79d4185d69 fix(iso9660): copy actual efi config to efi structure
To keep things consistent, copy the EFI configuration also to the EFI structure on the ISO9660 filesystem.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 18:49:19 +01:00
desertwitch
82ead30f72 fix(configs): add missing grub modules
We now require configfile and search modules to locate the ISO9660 filesystem, add them for our targets.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 11:56:03 +01:00
desertwitch
fe590092af fix(iso9660): default path adapted for clarity
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 11:18:27 +01:00
desertwitch
02d0c2ef60 fix(iso9660): improve xorriso argument order
Improved the iso9660 argument order to better reflect modern best practices, inspired by the Debian distribution ISOs.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 10:34:38 +01:00
desertwitch
e89f457acc chore: update readme for new changes
Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 08:24:13 +01:00
desertwitch
e2eafb0f91 feat(configs): add i586-specific configurations
Additional configurations for the i586 builds were added, so that new users can easily build those targets without needing to change things around via "make menuconfig" (potentially triggering unwanted other changes, e.g. reset of GRUB modules).

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 07:44:21 +01:00
desertwitch
29bf065cd8 feat(configs): adapt configurations for new changes
The default configuration "shredos_defconfig" was amended to produce both the existing USB image (which allows writing PDFs to the USB) and the new hybrid ISO (which now allows BIOS+UEFI booting, as well as flashing to USB and burning to CD/DVD-ROM) in one build.

Additional configurations "shredos_img_defconfig" and "shredos_iso_defconfig" were added which only target either the existing USB image or the new hybrid ISO, for full flexibility.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 07:41:51 +01:00
desertwitch
af1654ee9f fix(shredos): refactor post-process scripts
Post-processing used a static (outdated?) GRUB image for USB image generation, but it is better to use the GRUB image produced as part of the building process, which ensures that the actual compiled GRUB version is used as bootloader in our images and not an outdated one.

Post-processing previously embedded the 64-bit EFI bootloader to 32-bit builds, as no architecture checks were in place. This was changed to check for architecture and embed the correct EFI bootloader for the respective target architecture instead.

The GRUB configuration was changed to use a menu, to allow the user to choose between standard and nomodeset parameters, while also allowing the user to edit the command line to append other kernel parameters they may need for their systems.

The vanity kernel image name was returned to bzImage to clearly mark the image for what it is, and to remain consistent with the ISO file generation where we have no direct control over the image now.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 07:41:51 +01:00
desertwitch
56333565cb chore(grub2): remove obsolete vanity patch
As the board is now using a GRUB menu, replacing these messages no longer makes sense (most users will never see them), so the additional patch is better removed.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 07:41:45 +01:00
desertwitch
554f1a965b feat(iso9660): complete refactor of filesystem
The entire iso9660 filesystem folder was restructured to replace partially unreadable legacy code with modern, readable and modular structures. Hardcoded paths were replaced with variables, as much as possible, to make the code work with different setups. A mode "both" was added, producing Debian-style hybrid ISOs for both BIOS and EFI usage, while still allowing for flashing to USB and/or burning to CD/DVD-ROM. The configuration GUI (via "make menuconfig") was also refactored and adapted to the new changes.

Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com>
2025-11-18 07:40:08 +01:00
PartialVolume
4e544986c1 Update README.md
Add missing hash symbol
2025-11-17 00:56:39 +00:00
Fab
b134eb2171 Updating readme with information related to release of ShredOS v2024.11_27_x86-64_0.38 (#319)
* Completed Troubleshooting Information

* Update README.md with information about toggling font size

Previously the toggling of bigger font sizes required access to the virtual terminal. PartialVolume integrated a shortcut.

* Smaller Readibility Updates

* Clarification regarding Mac Support

Expanded definition of Mac to all intel powered macs

* Clarified supported systems

* Fixed typo on new Display Font Size Toggle paragraph
2025-10-23 23:19:01 +01:00
PartialVolume
0027e5536c Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2025-10-23 22:37:16 +01:00
PartialVolume
d9ccdd4c6d Wait for 10 seconds of USB bus inactivity, previously 5 seconds before proceeding to execute nwipe, the 30 second timeout remains in place, resulting in the execution of nwipe irrespective of USB bus activity. 2025-10-23 22:36:38 +01:00
DaanSelen
e1414a8f43 chore(pkg): update nwipe version to 0.39 (#380)
* chore: bump nwipe

* chore: clean the .mk file of nwipe

* chore: update .mk and .hash files

* chore: add tar.gz into gitignore

* chore: try to integrate https://github.com/PartialVolume/shredos.x86_64/pull/322

* Revert "chore: try to integrate https://github.com/PartialVolume/shredos.x86_64/pull/322"

This reverts commit 6a4ad199ea.

* chore: bump image name

* Revert "chore: bump image name"

This reverts commit ec70d375b5.

---------

Co-authored-by: Daan Selen <dselen@systemec.nl>
2025-10-22 21:48:10 +01:00
PartialVolume
09b9d853b7 Update README.md
Update note regarding using vanilla vs nomodeset and suspend to RAM.
2025-02-03 11:27:38 +00:00
PartialVolume
4aeeb9d95c Update README.md
Added a link to the ShredOS wiki on sleep states
2025-02-03 11:07:48 +00:00
PartialVolume
0d0486aa13 Update README.md
Add use of rtcwake for unfreezing drives
2025-02-03 10:53:14 +00:00
PartialVolume
0a31507565 Merge pull request #325 from brazier/master
Minor update to README ssd and nvme section
2025-02-02 22:29:19 +00:00
brazier
ef1447a300 Update README ssd and nvme section
Added how to enter virtual terminal.
Fix minor typos.
Fix incorrect link in text.
Fixed inconsistencies in text and command lines.
2025-02-02 16:05:31 +01:00
PartialVolume
cae899cd2d Merge pull request #324 from brazier/master
Update readme with information on how to work with ssd and nvme disks
2025-02-02 05:25:56 +00:00
brazier
79a766cb9b Update README.md
Added command line procedures for SSD and NVME
2025-02-02 05:12:35 +01:00
PartialVolume
9841cf576a Update README.md
Corrected a typo
2025-01-29 00:12:31 +00:00
PartialVolume
2d26de04e7 Update README.md
Updated release details links
2025-01-29 00:11:02 +00:00
PartialVolume
198a6a558d Update README.md
Add links to 32 bit .iso and .img files.
2025-01-29 00:02:00 +00:00
PartialVolume
2ad82e21d4 Update README.md
Update links to latest release.
2025-01-26 01:10:27 +00:00
PartialVolume
4bda8c2593 Merge pull request #321 from Knogle/fix-action-ebpf-arch-mismatch
linux-tools: remove BPF kselftest artifact to avoid arch mismatch error
2025-01-24 21:09:35 +00:00
Fabian Druschke
6a254b30e2 linux-tools: remove BPF kselftest artifact to avoid arch mismatch error 2025-01-24 18:19:58 +00:00
PartialVolume
4fcdcefb6d Updated some files for the go package that had some old files from the previous version. 2025-01-23 11:15:47 +00:00
PartialVolume
e80f0d4972 Added back in an incorrectly deleted file 2025-01-23 01:19:26 +00:00
PartialVolume
b898ad4de0 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2025-01-23 01:09:41 +00:00
PartialVolume
c6c3355280 Removed old patch files that were from the previous buildroot version which were still present. This caused uses during compile when already patched files were attempted to be repatched which caused an error and the compile to fail. 2025-01-23 01:07:41 +00:00
PartialVolume
31aa1f6b4c Merge pull request #317 from fthobe/patch-1
Update README.md with Troubleshooting for 520 sector size and
2025-01-17 21:56:04 +00:00
Fab
b93e686f57 Update README.md with Troubleshooting for 520 sector size and
I added all information needed to reformat 520e disks and remove FTTH. 

I took the liberty to link to my guides and replaced systemrescue in my guide with ShredOS, now that there's parallel preinstalled it makes more sense.
2025-01-16 14:14:20 +01:00
PartialVolume
e05541a43b Added Seagate's OpenSeaChest tools. Increased image size to 310MB leaving approximately 25MB free for PDF certificates and logs 2025-01-13 21:30:42 +00:00
PartialVolume
0b171bd816 Fixed busybox not being included, noticed during tests as telnetd wasn't available. Also added CONFIG_GEMINI_ETHERNET=y driver. 2025-01-12 22:05:06 +00:00
PartialVolume
f714583630 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2025-01-10 19:39:38 +00:00
PartialVolume
f39f161d58 Upgrade ShredOS to buildroot v24.11 2025-01-10 19:34:56 +00:00
PartialVolume
9c8853d35b Merge pull request #313 from anshnd/patch-1
Update README.md
2025-01-06 19:51:53 +00:00
anshnd
c8efa954fe Update README.md
small typos
2025-01-06 12:48:21 -05:00
PartialVolume
400c6681fe Update README.md
Minor update to the loadkeys text
2024-11-25 12:58:47 +00:00
PartialVolume
d5280fc4e1 Merge pull request #289 from PartialVolume/Add_MPI3MR_driver_for_broadcom_SCSI
Added the MPI3MR driver for Broadcom SCSI
2024-09-17 19:57:29 +01:00
PartialVolume
3c9a12c5b2 Added the MPI3MR driver for Broadcom SCSI 2024-09-17 19:55:16 +01:00
PartialVolume
8fa918db4e Merge pull request #287 from PartialVolume/Improve_naming_of_dmesg.txt_to_avoid_collisions
Improve naming of the dmesg.txt file to avoid overwriting
2024-09-14 22:18:39 +01:00
PartialVolume
6cfc0c4b16 Improve naming of the dmesg.txt file to avoid overwriting 2024-09-14 22:16:26 +01:00
PartialVolume
889bcbe3fe Added Dell x86 platform specific device drivers as builtin 2024-09-13 17:05:16 +01:00
PartialVolume
96bb5cbe9a CONFIG_IKCONFIG: This option enables the complete Linux kernel .config file contents to be saved in the kernel. It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below). 2024-09-11 21:48:40 +01:00
PartialVolume
52a07e32d3 Including CONFIG_PCI_MSI fixes a problem with some discs not showing up on HP servers. Thanks to @tlschenkjr 2024-09-11 21:16:59 +01:00
PartialVolume
b8a35caee4 Fix parallel.hash, file must end with 0x0a (newline) 2024-09-01 00:16:12 +01:00
PartialVolume
5ed052e83f Merge pull request #280 from PartialVolume/revert_procps-ng_files
Revert procps-ng files back to their original state
2024-08-31 21:51:24 +01:00
PartialVolume
acbd555ee4 Revert procps-ng files back to their original state prior to commit 1fe0ac8, basically re-instating the new line character or lines at the end of the files. 2024-08-31 21:47:48 +01:00
Fab
1fe0ac8846 #274 ATTENTION: FIRST COMMIT, TRIPLE CHECK FOR MISTAKES Added parallel package to buildroot (#275)
Added parallel package to buildroot to close #274
Added .DS_Store due for development on mac clients.
Updated readme.md regarding sg3_utils & parallel
2024-08-31 20:41:38 +01:00
PartialVolume
4b94ac084d Minor update to readme 2024-08-21 23:07:13 +01:00
PartialVolume
9a49018892 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2024-08-21 21:52:21 +01:00
PartialVolume
c21ac29363 Add a new script that toggles the font size between single and double size. Activated by the d key in nwipe drive selection, specifically for ShredOS use 2024-08-21 21:50:16 +01:00
PartialVolume
b5c9b31564 Update README.md
Fix typo
2024-06-23 22:34:22 +01:00
PartialVolume
8be911b9b8 Update README.md
Started uipdating README.md in regards to network transfer. More to follow.
2024-06-23 21:23:06 +01:00
PartialVolume
37fb52d89d Update README.md
Update links to new release.
2024-06-14 10:45:35 +01:00
PartialVolume
9c929fc958 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2024-05-29 23:46:44 +01:00
PartialVolume
36654250aa Add a=archive to USB option available on completion
When nwipe has completed erasing the drives and the user
hits return to exit which then creates the PDF certificates,
the PDF and log files are then either automatically transferred
to a USB stick, assuming that's where you booted ShredOS from
or the files are transferred to a network server, if the ShredOS
grub.cfg files were configured to do that.

However, say there was a network failure or somebody inadvertently
removed the USB drive, the PDF files & logs would not get saved.

Previously you would have had to manually copy the files using the
command line.

Now when you get to the stage where ShredOS asks whether you want
to reboot, shutdown or restart nwipe, if there are any PDF files
that have not been saved a new options 'a' archive to USB will
be available. This option will only show up if there are PDFs that
have not been saved. So the message will read:
r=reboot, s=shutdown, a=archive to USB, spacebar=restart nwipe

Apart from the above scenario, this feature may also prove useful
to somebody, wiping many computers while using a single USB stick.
For those that don't know, it's not necessary to keep the USB stick
plugged into the computer. Once nwipe has appeared you can pull
the USB stick out and use it to boot another computer. Returning it
to the first computer when the wipes have completed and you want to
save the PDFs to USB.

This patch also standardises the date format used in the ShredOS
logs so it matches the nwipe format.
2024-05-29 23:17:25 +01:00
PartialVolume
9e4e3ee596 Update README.md with revised nwipe options help (v0.37)
Updated the information that shows the command line options that can be used with nwipe and therefore used with ShredOS's nwipe_options"...." string that can be placed on the kernel command line.
2024-05-26 21:49:37 +01:00
PartialVolume
5b9ae7a070 Update README.md
Add new psuedo random number generators to README.md
- ISAAC-64
- Lagged Fibonacci
- XORoshiro-256
2024-05-26 21:27:48 +01:00
PartialVolume
b5ad621ac1 Removed a couple of redundant sleep commands used during testing. Capitalised the word FAILED to highlight in logs 2024-05-26 01:27:20 +01:00
PartialVolume
878e16aee5 More improvements to error detection and logging for tftp transfers. Now also sends transfer.log to config server 2024-05-26 01:04:23 +01:00
PartialVolume
f4c1fa8775 Add additional error, Network is unreachable, when checking tftp output 2024-05-25 22:33:13 +01:00
PartialVolume
9ae530c596 Merge pull request #256 from PartialVolume/add_autoreboot
Merge pull request #255 from PartialVolume/Ping_server_and_wait.

Various fixes to do with tftp/ftp transfers.
Fixes #242 Pauses for upto 30 seconds before launching nwipe if ftp/tftp transfers are being used. This is because if the user specified shredos_config="..." on the kernel command line in order to retrieve the nwipe.conf and nwipe_customers.csv files from a local ftp/tftp server, the server needs to be online before nwipe is launched. On some systems/networks the ethernet hardware initialisation and then DHCP requests can be slower than nwipe launching hence why we now ping the server to makesure it's online before launching nwipe.

Lots of improvements to error detection and handling for tftp

Improvments to the "shredos_autoreboot=enable" option. When this option is placed on the kernel command line shredos will reboot upon completion of wipes. --nowait option is appled by the scipt to nwipe so nwipe doesn't wait for user interaction before exiting. If the shredos_config="..." or shredos_output="..." kernel command line options have been added by the user, autoreboot and also autoshutdown will wait after exiting nwipe if any ftp/tftp errors occurred so the user can review the transfer log and decide on a course of action if necessary.
2024-05-24 23:24:10 +01:00
PartialVolume
3b94392d3d Merge pull request #255 from PartialVolume/Ping_server_and_wait
Various fixes to do with tftp/ftp transfers.
Fixes #242 Pauses for upto 30 seconds before launching nwipe
if ftp/tftp transfers are being used. This is because if the
user specified shredos_config="..." on the kernel command line
in order to retrieve the nwipe.conf and nwipe_customers.csv
files from a local ftp/tftp server, the server needs to be
online before nwipe is launched. On some systems/networks the
ethernet hardware initialisation and then DHCP requests can be
slower than nwipe launching hence why we now ping the server
to makesure it's online before launching nwipe.

Lots of improvements to error detection and handling for tftp

Improvments to the "shredos_autoreboot=enable" option. When this
option is placed on the kernel command line shredos will reboot
upon completion of wipes. --nowait option is appled by the scipt
to nwipe so nwipe doesn't wait for user interaction before exiting.
If the shredos_config="..." or shredos_output="..." kernel command
line options have been added by the user, autoreboot and also
autoshutdown will wait after exiting nwipe if any ftp/tftp errors
occurred so the user can review the transfer log and decide on a
course of action if necessary.
2024-05-24 23:00:04 +01:00
PartialVolume
c78a73292d Merge pull request #255 from PartialVolume/Ping_server_and_wait
Various fixes to do with tftp/ftp transfers.
Fixes #242
2024-05-22 00:15:46 +01:00
PartialVolume
34eacfb576 Merge pull request #223 from ExaneServerTeam/bugfix/fix-kernel_cmdline_extractor-build
Fix kernel_cmdline_extractor build
2024-05-22 00:10:47 +01:00
PartialVolume
e28a7d6dad Various fixes to do with tftp/ftp transfers
1. Debug tftp transfers for restoring config files and outputing
pdfs and logs.

2. Added a ping status delay for the ftp/tftp that only proceeds
with launching nwipe if ftp/tftp servers have been configured on
the kernel command line. The delay has a 30 second timeout upon
which nwipe will launch. This fixes a problem where nwipe launches
before the ethernet hardware is active and a IP address had not
been obtained. This caused nwipe to not be able to read the
config files from the ftp/tftp server.

3. Removed 4 second countdown on restarting nwipe.
2024-05-21 23:52:53 +01:00
PartialVolume
174a967fe6 Update with the correct filename 2024-05-17 23:22:38 +01:00
PartialVolume
b52a2f6a57 Updated kernel config backup filename 2024-05-17 23:16:23 +01:00
PartialVolume
a9061850c9 Add missing images directory and contents 2024-05-17 22:30:33 +01:00
PartialVolume
b3a6142574 Merge pull request #253 from PartialVolume/Update_buildroot
Update buildroot to 2024.02.2, kernel to 6.6.2, drivers, firmware, nwipe to v0.37
2024-05-17 17:48:05 +01:00
PartialVolume
c000e2a83d Update buildroot to 2024.02.2, kernel to 6.6.2, GPU & DRM drivers, nwipe to v0.37 plus many others. 2024-05-17 17:42:31 +01:00
PartialVolume
b63324710c Merge pull request #248 from tlschenkjr/patch-1
Update nwipe_launcher fixing missing colons in transfer.log messages …
2024-05-09 18:41:27 +01:00
tlschenkjr
652ce98c2c Update nwipe_launcher fixing missing colons in transfer.log messages and changed lftp_file to incoming for consistency. 2024-05-09 09:46:46 -05:00
PartialVolume
139cf78654 Merge pull request #243 from rarzberger4/patch-1
Update README.md
2024-04-15 11:25:59 +01:00
rarzberger4
27304b8c20 Update README.md 2024-04-15 10:13:12 +02:00
PartialVolume
bb87d66c65 Merge pull request #230 from PartialVolume/new_shutdown_reboot_options
New shutdown and reboot options
2024-03-06 19:32:52 +00:00
PartialVolume
0c3cac944f New shutdown and reboot options
When the user types Control C to exit nwipe after the wipes
have completed or to abort nwipe before wipes complete, previously
ShredOS provided only one option which was press the spacebar to
restart nwipe. The user could also have pressed the power button to
shutdown the computer.

This commit now provides the option to reboot or shutdown using the
keyboard. The following message is displayed after nwipe exits.
"Paused, press r to reboot, s to shutdown, spacebar to restart nwipe"

As before if auto shutdown has been selected via the kernel command
line then auto shutdown overrides this new message.
2024-03-06 19:16:06 +00:00
PartialVolume
c1b59fa938 Update README.md
Update header url.
2024-03-04 20:25:11 +00:00
PartialVolume
bde2134bb5 Update README.md
Added instructions on how to exclude the ShredOS fat formatted boot drive from nwipe's interactive or autonuke modes.
2024-03-04 20:14:50 +00:00
PartialVolume
f8121f7886 Merge pull request #228 from PartialVolume/Exclude_shredos_boot_disc
Exclude FAT boot disc from erasure.
2024-03-02 22:23:21 +00:00
PartialVolume
e65a152014 Merge branch 'master' into Exclude_shredos_boot_disc 2024-03-02 22:22:58 +00:00
PartialVolume
ef2810ae64 Exclude FAT boot disc from erasure.
This commit allows the user to exclude the fat
formatted USB flash drive that ShredOS was booted from.

Reasons why the user might want to do this are:

a:) avoid the possibility of accidently selecting the
USB FAT formatted boot drive for erasure in interactive mode

b:) Stop the USB FAT formatted boot drive being erased in
autonuke mode.

There are two methods available to do this. You should currently
not manually add -e, --exclude=DEVICES on the kernel command line
if using either method described below as the results may be
unpredictable as nwipe doesn't currently combine two -e or --exclude
options. A patch to nwipe will fix this in due course. Further to
this, ShredOS will only exclude ONE FAT formatted USB drive. If you
plugged multiple FAT formatted drives into the system it will only
exclude the first drive it comes across that it either recognises
as a ShredOS boot drive or is explicitly excluded by using the empty
file /etc/shredos/shredos_exclude_disc. This file will take precedence
over ShredOS attempting to detect a boot drive by examining version
information.

The two methods to exclude a FAT formatted boot drive from being wiped
are described below. Even though a drive is excluded from the wipe it
will still have reports and logs transferred  to it unless some other
transfer method has been selected such as lftp.

1. The user can now place a empty file called
/etc/shredos/shredos_exclude_disc on the FAT formatted drive.
This will cause ShredOS to use the nwipe exclude option to
exclude the drive from being displayed in nwipe's interactive
mode or erased in nwipe's autonuke mode. This is particularly
userful for Ventoy users as they would not need to edit the
ShredOS .img file or build the modified ShredOS .iso as required
by method 2 below when making changes to grub.cfg.
However this method is not only limited to Ventoy users but can
also be used on a ShredOS USB created by dd or Rufus.

2. The user can place the text string shredos_exclude_boot_disc
on the kernel command line in /boot/grub/grub.cfg and /EFI/BOOT/grub.cfg
As with the first method this will cause ShredOS to exclude the FAT
formatted boot drive from appearing in nwipe's interactive mode or
being erased in nwipe's autonuke mode.

In addition to the above features various improvements were made to
the log messages include prefixing with date.
2024-03-02 21:55:31 +00:00
Frederic Brin
b6797896c6 Fix kernel_cmdline_extractor build
Currently the build of kernel_cmdline_extractor require
autoconf & automake installed on the host and do not
use the ones embedded in buildroot.

A simple use of autoreconf fix the build
2024-02-23 10:40:06 +01:00
PartialVolume
7a929001cc Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2024-02-22 21:33:37 +00:00
PartialVolume
447f1ac5d0 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64
Add fat16 to existing fat32 & exfat disc formats

We now accept fat16 as well as fat32 and exfat formats for
USB devices that can have the config files restored from &
sent to as well as saving PDF files.
2024-02-22 21:26:42 +00:00
PartialVolume
38bbc1fd9e Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2024-02-22 19:41:44 +00:00
PartialVolume
2acaff5c3f Multiple loop device test mode for developers & testers.
The main purpose of this commit is to allow the developer
or tester the ability to specify /dev/loop0 .. /dev/loopn on the
kernel command line in /boot/grub/grub.cfg and /EFI/BOOT/grub.cfg
where n is unlimited, although it is recommended that no more
than 20-30 loop devices are specified. The loop devices are of a
fixed size alternating between 500Kbytes and 1 MByte in size. Due
to their small size you would typically select 500 or 1000 rounds
when testing. To create loop devices append the following to
grub.cfg nwipe_options='--nousb /dev/loop0 /dev/loop1 ... /dev/loopn'
loop devices should be sequential starting at loop0, any break in
the sequence will cause creation of loop devices to stop.

This commit also includes a ffmpeg module
+BR2_PACKAGE_FFMPEG_SWSCALE=y for creation of
videos of the display. This may be useful for creating
training material, youtube videos etc using the command
ffmpeg -f fbdev -framerate 30 -i /dev/fb0 output.mp4

Initial work was started on excluding the boot disc if
the following shredos_exclude_boot_disc is appended
to the kernel command line.
2024-02-22 19:39:08 +00:00
PartialVolume
67efa79c9c Update README.md
Update URL link to one of the .iso files
2024-02-20 16:36:06 +00:00
PartialVolume
13e968aef0 Update README.md
Updated link to i586_32bit .img https://github.com/PartialVolume/shredos.x86_64/releases/download/v2023.08.2_25.0_x86-64_0.35/shredos-2023.08.2_25.0_i586_0.35_20240219.img
2024-02-19 22:25:36 +00:00
PartialVolume
d1114b6be9 Merge pull request #217 from ExaneServerTeam/bugfix/doc-update-grub.cfg
Fix grub.cfg path for Bios on latest image
2024-02-13 18:05:37 +00:00
Frederic Brin
f8241bad14 Fix grub.cfg path for Bios on latest image
Config file moved from boot/grub.cfg to boot/grub/grub.cfg
2024-02-13 11:58:10 +01:00
PartialVolume
a7325c49db Added link to i586_32bit .iso
Added link to i586_32bit .iso
2024-02-10 21:39:39 +00:00
PartialVolume
989299f31e Update README.md
Minor textual changes to .img, iso release table
2024-02-09 16:16:11 +00:00
PartialVolume
4f50f508c3 Update README.md
Various changes to the table that contains links to .img & .iso releases.
2024-02-09 15:48:25 +00:00
PartialVolume
5782e81c9f Merge pull request #199 from PartialVolume/Add_read_write_nwipe_files_to_pxe_server
Changes mainly related to retrieving and saving config files and saving PDF, log and dmesg files via tftp and ftp
2024-01-01 22:24:58 +00:00
PartialVolume
c9346c1f16 1. Now searches through multiple drives looking for exfat/fat32 shredos boot
discs including Ventoy.
2. The delay ShredOS introduces while it waits for USB devices to initialise
   previously printed a period symbol every second to show somethink was
   happening, instead, it now counts down numerically from 30. Most USB
   devices have initialised after about 10-15 seconds.
3. Two new kernel command line options are introduced. The first allows the
   user to determine whether PDF, log and dmesg files are sent using tftp or
   ftp protocols.
   i.e shredos_config=ftp:192.168.0.2:/home/joe/ftpdata/:jo:488993d:d
4. The second kernel command line option is:
   shredos_output=ftp:192.168.0.2:/home/joe/ftpdata/:jo:488993d:d which
   determines where the nwipe config files are retrieved from on ShredOS boot
   and saved on nwipe exit.
5. Added package openssh for sftp support
6. Added package telnetd which had inadvertently been removed on the last update.
2024-01-01 22:20:20 +00:00
PartialVolume
c62fe70bed Merge pull request #198 from wibeasley/patch-1
space after period
2024-01-01 22:12:45 +00:00
Will Beasley
8eb8ddfe29 space after period 2024-01-01 16:04:41 -06:00
PartialVolume
f50def9346 Update README.md
Updated a few thing relevant to the latest release.
2023-12-13 18:31:10 +00:00
PartialVolume
f8d5e1a5b9 Update README.md
Update on how many drives can simultaneously wiped using ShredOS. Currently fifty per system.
2023-12-13 18:23:00 +00:00
PartialVolume
02ee9039cf Update README.md
Update to .img size and number of excluded drives increased from 10 to 30 from Rev. 25.1
2023-12-13 14:37:06 +00:00
PartialVolume
7c24827971 Update README.md
Fix spelling
2023-12-13 00:24:16 +00:00
PartialVolume
bea5a4e427 Update README.md
Fix two typos
2023-12-13 00:12:42 +00:00
PartialVolume
e5093abe16 Update README.md
Fix a typo
2023-12-12 23:14:03 +00:00
PartialVolume
0f4768ef9d Update README.md
Fix another typo.
2023-12-12 23:08:50 +00:00
PartialVolume
e871c67a7e Update README.md
Fix a typo
2023-12-12 23:06:57 +00:00
PartialVolume
88cf6caedd Correct some text formatting 2023-12-12 23:01:22 +00:00
PartialVolume
5c66536ed7 Update README.md
Update index link and remove bold text.
2023-12-12 22:52:32 +00:00
PartialVolume
adf21c4d93 Update README.md
Added a procedure for editing the ShredOS .img grub files and recreating the modified .img file.
2023-12-12 22:46:14 +00:00
PartialVolume
a0dc10c6d1 Update README.md
Update nwipe help, showing command line options as of release 0.35
2023-11-27 18:32:47 +00:00
PartialVolume
128f294799 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2023-11-26 19:45:55 +00:00
PartialVolume
6acdce2eac ShredOS will now save & restore configuration files, dmesg.txt and PDF certificate files to Ventoy formatted USB flash drives. Instead of saving to the first FAT32 formatted disc found, it now examines the exFAT or FAT32 partition for version information that matches the currently booted version. The location of ../board/shredos/version.txt has been moved to board/shredos/fsoverlay/etc/shredos/version.txt. This file should be manually updated by the devs when new versions are released. The README.md file was updated with this new location for version.txt 2023-11-26 19:41:24 +00:00
PartialVolume
a08811f60e Update README.md
Added mput *.pdf to example lftp command
2023-11-22 17:01:43 +00:00
PartialVolume
75f8dbc805 Update README.md
Fix URL
2023-11-10 19:13:36 +00:00
PartialVolume
8aebec82ab Update README.md
Add link to .img download and remove paragraph about HPA/DCO detection not being supported. As from v2023.08.2_25.0_x86-64_0.35 HPA/DCO detection (hidden sectors) is now supported and nwipe now creates a PDF certificate for each drive erased.
2023-11-10 19:12:27 +00:00
PartialVolume
e599c7241c Initial updates to README.md for v2023.08.2_25_x86-64_0.35
Initial updates to README.md for v2023.08.2_25_x86-64_0.35 for imminent release.
2023-11-10 16:49:18 +00:00
PartialVolume
5998f89ac9 Add example PDF animated gif which is used in README.md 2023-11-10 16:17:56 +00:00
PartialVolume
948b05bf49 Increased ShredOS's vfat partition size to 250MB which leaves about 25MB free space. This was done so that approximately 75 PDF certificates could be stored on the ShredOS partition. 2023-11-10 15:21:39 +00:00
PartialVolume
325b54a68d Fixed nwipe.conf being restored to incorrect location 2023-11-09 23:30:58 +00:00
PartialVolume
c9788147f2 - Nwipe reads /etc/nwipe/nwipe.conf and /etc/nwipe/nwipe_customers.csv from the USB flash drive at boot. Nwipe now writes /etc/nwipe/nwipe.conf and /etc/nwipe/nwipe_customers.csv from ShredOS's ram drive back to USB flash drive on nwipe exit. This means any changes to nwipe's configuration via nwipes configuration screen or any changes manually made to the files will be saved back to the flash drive. Initial commit, further debugging of nwipe.conf restore from USB to ram drive required. 2023-11-09 23:21:08 +00:00
PartialVolume
254d38ccae Correct typo in comment 2023-11-08 22:55:09 +00:00
PartialVolume
a044cc12bb ShredOS now waits for USB devices to initialise before launching nwipe. Nwipes's PDF report is now written to the ShredOS USB flash drive. 2023-11-08 22:48:00 +00:00
PartialVolume
cd2f20c834 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2023-11-08 19:15:21 +00:00
PartialVolume
9e8d671b7c Update to buildroot 2023.08.2, updated nwipe to v0.35, added ChromeOS and Microsoft Surface drivers, fibre channel drivers. 2023-11-08 19:10:58 +00:00
PartialVolume
edb8bf60ab Merge pull request #161 from ITJamie/master
add option to post logfile to http endpoint
2023-08-03 10:46:24 +01:00
Jamie (Bear) Murphy
9eaf465fea add option to post logfile to http endpoint 2023-07-27 22:30:23 +01:00
PartialVolume
a02d0a3887 Update README.md
Corrected a case issue in one of the index links
2023-07-23 22:48:59 +01:00
PartialVolume
a8a8be2f23 Added missing frame buffer devices, added MESA3D drivers, added USB serial adapter support to allow output of /dev/console via USB/RS232, plus other graphics related changes. 2023-07-10 22:11:51 +01:00
PartialVolume
692717f27c Update README.md
typo
2023-07-09 20:56:01 +01:00
PartialVolume
848665a6ad Update README.md - note about MACs
Add information about MAC Book Pro's and how to switch terminals on a MAC.
2023-07-09 20:51:23 +01:00
PartialVolume
4805605fb2 Merge branch 'master' of github.com:PartialVolume/shredos.x86_64 2023-07-05 19:38:38 +01:00
PartialVolume
2ad6760d0f Upgrade buildroot to 2023.05 (from 2021.08.2), kernel is upgraded to 6.3 (from 5.13.19). 2023-07-05 19:35:21 +01:00
PartialVolume
b6ad20b4a1 Update README.md
Add `diskutil list` as command to use when determining USB drive on a Mac.
2023-07-02 22:31:47 +01:00
PartialVolume
47e0056463 Update README.md
Prefix dd with sudo
2023-07-02 21:59:07 +01:00
13577 changed files with 304097 additions and 175021 deletions

View File

@@ -1,51 +0,0 @@
#
# Automatically generated make config: don't edit
# Mon Feb 18 09:11:56 2008
#
BR2_HAVE_DOT_CONFIG=y
# BR2_alpha is not set
# BR2_arm is not set
# BR2_armeb is not set
# BR2_cris is not set
# BR2_ia64 is not set
BR2_i386=y
# BR2_m68k is not set
# BR2_mips is not set
# BR2_mipsel is not set
# BR2_nios2 is not set
# BR2_powerpc is not set
# BR2_sh is not set
# BR2_sparc is not set
# BR2_sparc64 is not set
# BR2_x86_64 is not set
# BR2_x86_i486 is not set
# BR2_x86_i586 is not set
BR2_x86_i686=y
# BR2_x86_pentiumpro is not set
# BR2_x86_pentium_mmx is not set
# BR2_x86_pentium_m is not set
# BR2_x86_pentium2 is not set
# BR2_x86_pentium3 is not set
# BR2_x86_pentium4 is not set
# BR2_x86_prescott is not set
# BR2_x86_nocona is not set
# BR2_x86_core2 is not set
# BR2_x86_k6 is not set
# BR2_x86_k6_2 is not set
# BR2_x86_athlon is not set
# BR2_x86_athlon_4 is not set
# BR2_x86_opteron is not set
# BR2_x86_opteron_sse3 is not set
# BR2_x86_barcelona is not set
# BR2_x86_geode is not set
# BR2_x86_c3 is not set
# BR2_x86_winchip_c6 is not set
# BR2_x86_winchip2 is not set
BR2_ARCH="i686"
BR2_ENDIAN="LITTLE"
BR2_GCC_TARGET_TUNE="i686"
BR2_GCC_TARGET_ARCH="i686"
#
# Target options
#

View File

@@ -1,5 +0,0 @@
[flake8]
exclude=
# copied from the kernel sources
utils/diffconfig
max-line-length=132

View File

@@ -0,0 +1,56 @@
name: ISO Compile CI/CD
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 6'
jobs:
compile-iso:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install apt packages
run: |
mv /etc/apt/sources.list.d/microsoft-prod.list /etc/apt/sources.list.d/microsoft-prod.list.disabled
until apt-get update; do
echo -e "-----\napt-get update failed, retrying in 1s...\n-----"
sleep 1s
done
apt install -y \
automake \
autotools-dev \
bc \
build-essential \
cpio \
coreutils \
dmidecode \
dosfstools \
git \
libelf-dev \
libncurses5-dev \
libparted-dev \
libssl-dev \
mtools \
pkg-config \
rsync \
smartmontools \
unzip
- name: Prepare the building environment
run: |
mkdir -p package/shredos || true
touch package/shredos/Config.in || true
make clean
make shredos_defconfig
- name: Make
run: |
make

1
.github/FUNDING.yml vendored
View File

@@ -1 +0,0 @@
github: PartialVolume

4
.gitignore vendored
View File

@@ -1,5 +1,7 @@
/output
/dist
/dl
/build_all_shredos.log
/.auto.deps
/.config.cmd
/.config.old
@@ -13,3 +15,5 @@
*.rej
*~
*.pyc
.DS_Store
*.tar.gz

View File

@@ -1,7 +1,7 @@
# Configuration for Gitlab-CI.
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
image: buildroot/base:20200814.2228
image: $CI_REGISTRY/buildroot.org/buildroot/base:20230207.1123
stages:
- generate-gitlab-ci
@@ -10,9 +10,17 @@ stages:
generate-gitlab-ci-yml:
stage: generate-gitlab-ci
script: ./support/scripts/generate-gitlab-ci-yml support/misc/gitlab-ci.yml.in > generated-gitlab-ci.yml
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
artifacts:
when: always
paths:
- generated-gitlab-ci.yml
- br-test-pkg/*/.config
- br-test-pkg/*/missing.config
buildroot-pipeline:
stage: build
@@ -21,3 +29,5 @@ buildroot-pipeline:
- artifact: generated-gitlab-ci.yml
job: generate-gitlab-ci-yml
strategy: depend
variables:
PARENT_PIPELINE_ID: $CI_PIPELINE_ID

5152
CHANGES

File diff suppressed because it is too large Load Diff

182
Config.in
View File

@@ -6,6 +6,15 @@ config BR2_HAVE_DOT_CONFIG
bool
default y
# Hidden symbol kept to false, to temporarily mark a configuration
# known to be broken (by depending on it). Ideally, we don't want to
# keep broken parts for too long. The intended use of this symbol is
# to give some time to a developer to fix the feature. Features marked
# as broken will be removed if they are not fixed in a reasonable
# amount of time.
config BR2_BROKEN
bool
config BR2_VERSION
string
option env="BR2_VERSION_FULL"
@@ -55,6 +64,36 @@ config BR2_HOST_GCC_AT_LEAST_9
default y if BR2_HOST_GCC_VERSION = "9"
select BR2_HOST_GCC_AT_LEAST_8
config BR2_HOST_GCC_AT_LEAST_10
bool
default y if BR2_HOST_GCC_VERSION = "10"
select BR2_HOST_GCC_AT_LEAST_9
config BR2_HOST_GCC_AT_LEAST_11
bool
default y if BR2_HOST_GCC_VERSION = "11"
select BR2_HOST_GCC_AT_LEAST_10
config BR2_HOST_GCC_AT_LEAST_12
bool
default y if BR2_HOST_GCC_VERSION = "12"
select BR2_HOST_GCC_AT_LEAST_11
config BR2_HOST_GCC_AT_LEAST_13
bool
default y if BR2_HOST_GCC_VERSION = "13"
select BR2_HOST_GCC_AT_LEAST_12
config BR2_HOST_GCC_AT_LEAST_14
bool
default y if BR2_HOST_GCC_VERSION = "14"
select BR2_HOST_GCC_AT_LEAST_13
config BR2_HOST_GCC_AT_LEAST_15
bool
default y if BR2_HOST_GCC_VERSION = "15"
select BR2_HOST_GCC_AT_LEAST_14
# When adding new entries above, be sure to update
# the HOSTCC_MAX_VERSION variable in the Makefile.
@@ -65,7 +104,7 @@ config BR2_NEEDS_HOST_JAVA
# Hidden boolean selected by pre-built packages for x86, when they
# need to run on x86-64 machines (example: pre-built external
# toolchains, binary tools like SAM-BA, etc.).
# toolchains, binary tools, etc.).
config BR2_HOSTARCH_NEEDS_IA32_LIBS
bool
@@ -87,17 +126,23 @@ config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT
source "arch/Config.in"
source "toolchain/Config.in"
menu "Build options"
menu "Commands"
config BR2_CURL
string "Curl command"
default "curl -q --ftp-pasv --retry 3 --connect-timeout 10"
config BR2_WGET
string "Wget command"
default "wget --passive-ftp -nd -t 3"
default "wget -nd -t 3 --connect-timeout=10"
config BR2_SVN
string "Subversion (svn) command"
default "svn --non-interactive"
default "svn --non-interactive --config-option servers:global:http-timeout=10"
config BR2_BZR
string "Bazaar (bzr) command"
@@ -117,7 +162,11 @@ config BR2_LOCALFILES
config BR2_SCP
string "Secure copy (scp) command"
default "scp"
default "scp -o ConnectTimeout=10"
config BR2_SFTP
string "Secure file transfer (sftp) command"
default "sftp -o ConnectTimeout=10"
config BR2_HG
string "Mercurial (hg) command"
@@ -157,6 +206,13 @@ config BR2_LZCAT
Command to be used to extract a lzip'ed file to stdout.
Default is "lzip -d -c"
config BR2_ZSTDCAT
string "zstdcat command"
default "zstdcat"
help
Command to be used to extract a zstd'ed file to stdout.
Default is "zstdcat"
config BR2_TAR_OPTIONS
string "Tar options"
default ""
@@ -235,7 +291,7 @@ if !BR2_PRIMARY_SITE_ONLY
config BR2_BACKUP_SITE
string "Backup download site"
default "http://sources.buildroot.net"
default "https://sources.buildroot.net"
help
Backup site to download from. If this option is set then
buildroot will fall back to download package sources from here
@@ -258,7 +314,7 @@ config BR2_KERNEL_MIRROR
config BR2_GNU_MIRROR
string "GNU Software mirror"
default "http://ftpmirror.gnu.org"
default "https://ftpmirror.gnu.org"
help
GNU has multiple software mirrors scattered around the
world. The following allows you to select your preferred
@@ -281,14 +337,15 @@ config BR2_LUAROCKS_MIRROR
config BR2_CPAN_MIRROR
string "CPAN mirror (Perl packages)"
default "http://cpan.metacpan.org"
default "https://cpan.metacpan.org"
help
CPAN (Comprehensive Perl Archive Network) is a repository of
Perl packages. It has multiple software mirrors scattered
around the world. This option allows you to select a mirror.
The list of mirrors is available at:
http://search.cpan.org/mirror
http://mirrors.cpan.org/ (tabular)
http://mirrors.cpan.org/map.html (clickable world map)
endif
@@ -301,8 +358,12 @@ config BR2_JLEVEL
Number of jobs to run simultaneously. If 0, determine
automatically according to number of CPUs on the host system.
comment "ccache needs a host gcc >= 8"
depends on !BR2_HOST_GCC_AT_LEAST_8
config BR2_CCACHE
bool "Enable compiler cache"
depends on BR2_HOST_GCC_AT_LEAST_8
help
This option will enable the use of ccache, a compiler cache.
It will cache the result of previous builds to speed up future
@@ -428,7 +489,7 @@ config BR2_ENABLE_RUNTIME_DEBUG
config BR2_STRIP_strip
bool "strip target binaries"
default y
depends on !BR2_PACKAGE_HOST_ELF2FLT
depends on BR2_BINFMT_ELF
help
Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to save
@@ -457,7 +518,7 @@ config BR2_STRIP_EXCLUDE_DIRS
choice
prompt "gcc optimization level"
default BR2_OPTIMIZE_S
default BR2_OPTIMIZE_2
help
Set the optimization level for gcc
@@ -503,6 +564,7 @@ config BR2_OPTIMIZE_2
-falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
note the warning under -fgcse about invoking -O2 on programs
that use computed gotos.
This is the default.
config BR2_OPTIMIZE_3
bool "optimization level 3"
@@ -531,7 +593,6 @@ config BR2_OPTIMIZE_S
-falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version
This is the default.
config BR2_OPTIMIZE_FAST
bool "optimize for fast (may break packages!)"
@@ -547,13 +608,32 @@ config BR2_OPTIMIZE_FAST
endchoice
config BR2_ENABLE_LTO
bool "build packages with link-time optimisation"
help
Enable the link-time optimisation (LTO) option when building
packages. Link-time optimisation re-runs optimisations at
link time, which allows the compiler to do interprocedural
analysis across compilation units and thus come with better
results: smaller size and better performance.
Note that this analysis is limited to statically linked
object files and libraries.
This option may significantly increase build times,
sometimes 5 times longer, with only limited gains.
At this time, this option only enables LTO in packages that
have an explicit configuration option for it. Other packages
always enable LTO, but most packages never enable LTO.
config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
select BR2_PACKAGE_GOOGLE_BREAKPAD
@@ -597,6 +677,7 @@ choice
config BR2_STATIC_LIBS
bool "static only"
depends on !BR2_TOOLCHAIN_USES_GLIBC
help
Build and use only static libraries. No shared libraries will
be installed on the target. This potentially increases your
@@ -605,6 +686,9 @@ config BR2_STATIC_LIBS
option is enabled, due to their need for dynamic library
support.
comment "static only needs a toolchain w/ uclibc or musl"
depends on BR2_TOOLCHAIN_USES_GLIBC
config BR2_SHARED_LIBS
bool "shared only"
depends on BR2_BINFMT_SUPPORTS_SHARED
@@ -634,12 +718,12 @@ config BR2_PACKAGE_OVERRIDE_FILE
documentation for more details on this feature.
config BR2_GLOBAL_PATCH_DIR
string "global patch directories"
string "global patch and hash directories"
help
You may specify a space separated list of one or more
directories containing global package patches. For a specific
version <packageversion> of a specific package <packagename>,
patches are applied as follows:
directories containing global package patches and/or hashes.
For a specific version <packageversion> of a specific package
<packagename>, patches are looked up as follows:
First, the default Buildroot patch set for the package is
applied from the package's directory in Buildroot.
@@ -653,26 +737,10 @@ config BR2_GLOBAL_PATCH_DIR
exists, then all *.patch files in the directory will be
applied.
The hash files are looked up similarly to the patches.
menu "Advanced"
config BR2_COMPILER_PARANOID_UNSAFE_PATH
bool "paranoid check of library/header paths"
default y
help
By default, when this option is disabled, when the Buildroot
cross-compiler will encounter an unsafe library or header path
(such as /usr/include, or /usr/lib), the compiler will display
a warning.
By enabling this option, this warning is turned into an error,
which will completely abort the build when such unsafe paths
are encountered.
Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches)
and external toolchain backends (through the toolchain
wrapper).
config BR2_FORCE_HOST_BUILD
bool "Force the building of host dependencies"
help
@@ -685,6 +753,21 @@ config BR2_FORCE_HOST_BUILD
This option will increase build time.
config BR2_DOWNLOAD_FORCE_CHECK_HASHES
bool "Force all downloads to have a valid hash"
help
Say 'y' here to enforce downloads to have at least one valid
hash (and of course, that all hashes be valid).
By default, Buildroot checks hashes of all packages
downloaded, except those for which a custom version is
used.
With this option turned on, Buildroot will check hashes of
all packages, including those that use a custom version. In
order to provide hashes for such packages, place additional
hash files in BR2_GLOBAL_PATCH_DIR directories.
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
# SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
@@ -724,6 +807,20 @@ config BR2_PER_PACKAGE_DIRECTORIES
endmenu
config BR2_TIME_BITS_64
bool "Build Y2038-ready code"
depends on BR2_TOOLCHAIN_USES_GLIBC && !BR2_ARCH_IS_64
help
This option will pass -D_TIME_BITS=64 in the compiler flags
to ensure the glibc C library uses a 64-bit representation
for time_t and other time types, which ensures that
programs/libraries will correctly handle time past year
2038.
This option only has an effect with glibc >= 2.34, as
earlier glibc versions did not have support for 64-bit
time_t.
comment "Security Hardening Options"
config BR2_PIC_PIE_ARCH_SUPPORTS
@@ -731,8 +828,6 @@ config BR2_PIC_PIE_ARCH_SUPPORTS
default y
# Microblaze glibc toolchains don't work with PIC/PIE enabled
depends on !BR2_microblaze
# Nios2 toolchains produce non working binaries with -fPIC
depends on !BR2_nios2
config BR2_PIC_PIE
bool "Build code with PIC/PIE"
@@ -895,11 +990,20 @@ config BR2_FORTIFY_SOURCE_2
# gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
help
This option sets _FORTIFY_SOURCES to 2 and some more
This option sets _FORTIFY_SOURCE to 2 and some more
checking is added, but some conforming programs might fail.
Also adds checks at run-time (detected buffer overflow
terminates the program)
config BR2_FORTIFY_SOURCE_3
bool "Extended"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_12
help
This option sets _FORTIFY_SOURCE to 3 and even more
checking is added compared to level 2. Extends checks at
run-time that can introduce an additional performance
overhead.
endchoice
comment "Fortify Source needs a glibc toolchain and optimization"
@@ -907,8 +1011,6 @@ comment "Fortify Source needs a glibc toolchain and optimization"
depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
endmenu
source "toolchain/Config.in"
source "system/Config.in"
source "linux/Config.in"

File diff suppressed because it is too large Load Diff

2009
DEVELOPERS

File diff suppressed because it is too large Load Diff

266
Makefile
View File

@@ -1,8 +1,6 @@
# Makefile for buildroot
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
# Copyright (C) 2014-2020 by the Buildroot developers <buildroot@buildroot.org>
# Copyright (C) the Buildroot developers <buildroot@buildroot.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -68,13 +66,14 @@ endif
CANONICAL_CURDIR = $(realpath $(CURDIR))
REQ_UMASK = 0022
CUR_UMASK := $(shell umask)
# Make sure O= is passed (with its absolute canonical path) everywhere the
# toplevel makefile is called back.
EXTRAMAKEARGS := O=$(CANONICAL_O)
# Check Buildroot execution pre-requisites here.
ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O))
ifneq ($(CUR_UMASK):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O))
.PHONY: _all $(MAKECMDGOALS)
$(MAKECMDGOALS): _all
@@ -83,6 +82,7 @@ $(MAKECMDGOALS): _all
_all:
@umask $(REQ_UMASK) && \
$(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \
BR_ORIG_UMASK=$(CUR_UMASK) \
$(MAKECMDGOALS) $(EXTRAMAKEARGS)
else # umask / $(CURDIR) / $(O)
@@ -92,9 +92,9 @@ all:
.PHONY: all
# Set and export the version string
export BR2_VERSION := 2021.08.2
export BR2_VERSION := 2025.11
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1636546000
BR2_VERSION_EPOCH = 1765493000
# Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@@ -125,7 +125,7 @@ endif
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig distclean manual manual-% check-package check-flake8
print-version olddefconfig distclean manual manual-% check-package
# Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered,
@@ -141,7 +141,7 @@ nobuild_targets := source %-source \
clean distclean help show-targets graph-depends \
%-graph-depends %-show-depends %-show-version \
graph-build graph-size list-defconfigs \
savedefconfig update-defconfig printvars
savedefconfig update-defconfig printvars show-vars
ifeq ($(MAKECMDGOALS),)
BR_BUILDING = y
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
@@ -229,8 +229,6 @@ LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv
LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README
CPE_UPDATES_DIR = $(BASE_DIR)/cpe-updates
BR2_CONFIG = $(CONFIG_DIR)/.config
# Pull in the user's configuration file
@@ -286,12 +284,16 @@ ifndef HOSTCC
HOSTCC := gcc
HOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
endif
ifndef HOSTCC_NOCCACHE
HOSTCC_NOCCACHE := $(HOSTCC)
endif
ifndef HOSTCXX
HOSTCXX := g++
HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
endif
ifndef HOSTCXX_NOCCACHE
HOSTCXX_NOCCACHE := $(HOSTCXX)
endif
ifndef HOSTCPP
HOSTCPP := cpp
endif
@@ -351,7 +353,7 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \
# When adding a new host gcc version in Config.in,
# update the HOSTCC_MAX_VERSION variable:
HOSTCC_MAX_VERSION := 9
HOSTCC_MAX_VERSION := 15
HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \
@@ -392,6 +394,9 @@ unexport DESTDIR
# Causes breakage with packages that needs host-ruby
unexport RUBYOPT
# Compilation of perl-related packages will fail otherwise
unexport PERL_MM_OPT
include package/pkg-utils.mk
include package/doc-asciidoc.mk
@@ -402,26 +407,28 @@ ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Hide troublesome environment variables from sub processes
#
################################################################################
unexport CROSS_COMPILE
unexport AR
unexport ARCH
unexport CC
unexport LD
unexport AR
unexport CXX
unexport CPP
unexport RANLIB
unexport CFLAGS
unexport CXXFLAGS
unexport GREP_OPTIONS
unexport TAR_OPTIONS
unexport CONFIG_SITE
unexport QMAKESPEC
unexport TERMINFO
unexport CPP
unexport CROSS_COMPILE
unexport CXX
unexport CXXFLAGS
unexport DEVICE_TREE
unexport GCC_COLORS
unexport GREP_OPTIONS
unexport LD
unexport MACHINE
unexport O
unexport GCC_COLORS
unexport PLATFORM
unexport OS
unexport PLATFORM
unexport QMAKESPEC
unexport RANLIB
unexport TAR_OPTIONS
unexport TERMINFO
unexport TOPDIR
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
@@ -433,27 +440,14 @@ QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q)
# Strip off the annoying quoting
ARCH := $(call qstrip,$(BR2_ARCH))
KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arcle/arc/ \
-e s/arceb/arc/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \
-e s/nds32.*/nds32/ \
-e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-e s/riscv.*/riscv/ \
-e s/sh.*/sh/ \
-e s/s390x/s390/ \
-e s/microblazeel/microblaze/)
NORMALIZED_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH))
KERNEL_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH))
ZCAT := $(call qstrip,$(BR2_ZCAT))
BZCAT := $(call qstrip,$(BR2_BZCAT))
XZCAT := $(call qstrip,$(BR2_XZCAT))
LZCAT := $(call qstrip,$(BR2_LZCAT))
ZSTDCAT := $(call qstrip,$(BR2_ZSTDCAT))
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
@@ -487,8 +481,7 @@ BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR))
export BR_CACHE_DIR
HOSTCC = $(CCACHE) $(HOSTCC_NOCCACHE)
HOSTCXX = $(CCACHE) $(HOSTCXX_NOCCACHE)
else
export BR_NO_CCACHE
export BR2_USE_CCACHE ?= 1
endif
# Scripts in support/ or post-build scripts may need to reference
@@ -574,14 +567,12 @@ ifeq ($(BR_FORCE_CHECK_DEPENDENCIES),YES)
define CHECK_ONE_DEPENDENCY
ifeq ($$($(2)_TYPE),target)
ifeq ($$($(2)_IS_VIRTUAL),)
ifneq ($$($$($(2)_KCONFIG_VAR)),y)
$$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \
has added it to its _DEPENDENCIES variable without selecting it or \
depending on it from Config.in)
endif
endif
endif
endef
$(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
@@ -595,15 +586,19 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
.PHONY: prepare
prepare: $(BUILD_DIR)/buildroot-config/auto.conf
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT)), \
$(call MESSAGE,"Executing pre-build script $(s)"); \
$(EXTRA_ENV) $(s) \
$(TARGET_DIR) \
$(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS)) \
$(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT_ARGS))$(sep))
.PHONY: world
world: target-post-image
.PHONY: prepare-sdk
prepare-sdk: world
@$(call MESSAGE,"Rendering the SDK relocatable")
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
@$(call MESSAGE,"Preparing the SDK")
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
mkdir -p $(HOST_DIR)/share/buildroot
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
@@ -655,14 +650,6 @@ STRIP_FIND_SPECIAL_LIBS_CMD = \
\( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \
-print0
ifeq ($(BR2_ECLIPSE_REGISTER),y)
define TOOLCHAIN_ECLIPSE_REGISTER
./support/scripts/eclipse-register-toolchain `readlink -f $(O)` \
$(notdir $(TARGET_CROSS)) $(BR2_ARCH)
endef
TARGET_FINALIZE_HOOKS += TOOLCHAIN_ECLIPSE_REGISTER
endif
# Generate locale data.
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
GLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))
@@ -670,7 +657,7 @@ ifneq ($(GLIBC_GENERATE_LOCALES),)
PACKAGES += host-localedef
define GENERATE_GLIBC_LOCALES
$(MAKE) -f support/misc/gen-glibc-locales.mk \
+$(MAKE) -f support/misc/gen-glibc-locales.mk \
ENDIAN=$(call LOWERCASE,$(BR2_ENDIAN)) \
LOCALES="$(GLIBC_GENERATE_LOCALES)" \
Q=$(Q)
@@ -728,7 +715,14 @@ STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.t
.PHONY: host-finalize
host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK)
@$(call MESSAGE,"Finalizing host directory")
$(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR))
$(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR),copy)
$(Q)PARALLEL_JOBS=$(PARALLEL_JOBS) \
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) \
$(TOPDIR)/support/scripts/fix-rpath host
$(Q)PARALLEL_JOBS=$(PARALLEL_JOBS) \
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) \
$(TOPDIR)/support/scripts/fix-rpath staging
$(call ppd-fixup-paths,$(BASE_DIR))
.PHONY: staging-finalize
staging-finalize: $(STAGING_DIR_SYMLINK)
@@ -736,12 +730,12 @@ staging-finalize: $(STAGING_DIR_SYMLINK)
.PHONY: target-finalize
target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize
@$(call MESSAGE,"Finalizing target directory")
$(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR))
$(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR),copy)
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake \
$(TARGET_DIR)/usr/doc
$(TARGET_DIR)/usr/lib/rpm $(TARGET_DIR)/usr/doc
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
\( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f
@@ -781,23 +775,18 @@ endif
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
@$(call MESSAGE,"Sanitizing RPATH in target tree")
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath target
PARALLEL_JOBS=$(PARALLEL_JOBS) \
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) \
$(TOPDIR)/support/scripts/fix-rpath target
# For a merged /usr, ensure that /lib, /bin and /sbin and their /usr
# counterparts are appropriately setup as symlinks ones to the others.
ifeq ($(BR2_ROOTFS_MERGED_USR),y)
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
@$(call MESSAGE,"Sanity check in overlay $(d)")$(sep) \
$(Q)not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \
test -n "$$not_merged_dirs" && { \
echo "ERROR: The overlay in $(d) is not" \
"using a merged /usr for the following directories:" \
$$not_merged_dirs; \
exit 1; \
} || true$(sep))
endif # merged /usr
@$(call MESSAGE,"Sanity check in overlays $(call qstrip,$(BR2_ROOTFS_OVERLAY))")
support/scripts/check-merged \
-t overlay \
$(if $(BR2_ROOTFS_MERGED_USR),-u) \
$(if $(BR2_ROOTFS_MERGED_BIN),-b) \
$(call qstrip,$(BR2_ROOTFS_OVERLAY))
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
@$(call MESSAGE,"Copying overlay $(d)")$(sep) \
@@ -812,17 +801,31 @@ endif # merged /usr
$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
@$(call MESSAGE,"Executing post-build script $(s)")$(sep) \
$(Q)$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
$(Q)$(EXTRA_ENV) $(s) \
$(TARGET_DIR) \
$(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS)) \
$(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT_ARGS))$(sep))
touch $(TARGET_DIR)/usr
# Note: this will run in the filesystem context, so will use a copy
# of target/, not the real one, so the files are still available on
# re-builds (foo-rebuild, etc...)
define ROOTFS_RM_HWDB_DATA
rm -rf $(TARGET_DIR)/usr/lib/udev/hwdb.d/ $(TARGET_DIR)/etc/udev/hwdb.d/
endef
ROOTFS_PRE_CMD_HOOKS += ROOTFS_RM_HWDB_DATA
.PHONY: target-post-image
target-post-image: $(TARGETS_ROOTFS) target-finalize staging-finalize
@rm -f $(ROOTFS_COMMON_TAR)
$(Q)mkdir -p $(BINARIES_DIR)
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(call MESSAGE,"Executing post-image script $(s)"); \
$(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
$(EXTRA_ENV) $(s) \
$(BINARIES_DIR) \
$(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS)) \
$(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT_ARGS))$(sep))
.PHONY: source
source: $(foreach p,$(PACKAGES),$(p)-all-source)
@@ -839,7 +842,7 @@ legal-info-clean:
.PHONY: legal-info-prepare
legal-info-prepare: $(LEGAL_INFO_DIR)
@$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info")
@$(call legal-license-file,buildroot,buildroot,support/legal-info/buildroot.hash,COPYING,COPYING,HOST)
@$(call legal-license-file,HOST,buildroot,buildroot,COPYING,COPYING,support/legal-info/buildroot.hash)
@$(call legal-manifest,TARGET,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES)
@$(call legal-manifest,HOST,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES)
@$(call legal-manifest,HOST,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved)
@@ -879,6 +882,9 @@ graph-build: $(O)/build/build-time.log
--type=pie-$(t) --input=$(<) \
--output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \
$(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep))
./support/scripts/graph-build-time --type=timeline --input=$(<) \
--output=$(GRAPHS_DIR)/build.timeline.$(BR_GRAPH_OUT) \
$(if $(BR2_GRAPH_ALT),--alternate-colors)
.PHONY: graph-depends-requirements
graph-depends-requirements:
@@ -932,14 +938,6 @@ pkg-stats:
--html $(O)/pkg-stats.html \
--nvd-path $(DL_DIR)/buildroot-nvd
.PHONY: missing-cpe
missing-cpe:
$(Q)mkdir -p $(CPE_UPDATES_DIR)
$(Q)cd "$(CONFIG_DIR)" ; \
$(TOPDIR)/support/scripts/gen-missing-cpe \
--nvd-path $(DL_DIR)/buildroot-nvd \
--output $(CPE_UPDATES_DIR)
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Some subdirectories are also package names. To avoid that "make linux"
@@ -1016,13 +1014,18 @@ oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmake
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
define percent_defconfig
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile
@$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
$$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
endef
$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))
%_defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@defconfig=$(or \
$(firstword \
$(foreach d, \
$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)), \
$(wildcard $(d)/configs/$@) \
) \
), \
$(error "Can't find $@") \
); \
$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$${defconfig} \
$< --defconfig=$${defconfig} $(CONFIG_CONFIG_IN)
update-defconfig: savedefconfig
@@ -1042,7 +1045,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
# staging and target directories do NOT list these as
# dependencies anywhere else
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
$(BASE_DIR) $(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
@mkdir -p $@
# outputmakefile generates a Makefile in the output directory, if using a
@@ -1058,24 +1061,54 @@ endif
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are
# displayed.
# show-vars does the same, but as a JSON dictionnary.
#
# Note: we iterate of .VARIABLES and filter each variable individually,
# to workaround a bug in make 4.3; see https://savannah.gnu.org/bugs/?59093
.PHONY: printvars
printvars:
ifndef VARS
$(error Please pass a non-empty VARS to 'make printvars')
endif
@:
$(foreach V, \
$(sort $(filter $(VARS),$(.VARIABLES))), \
$(sort $(foreach X, $(.VARIABLES), $(filter $(VARS),$(X)))), \
$(if $(filter-out environment% default automatic, \
$(origin $V)), \
$(if $(QUOTED_VARS),\
$(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \
$(info $V=$(if $(RAW_VARS),$(value $V),$($V))))))
# ' Syntax colouring...
# ')))) # Syntax colouring...
# See details above, same as for printvars
.PHONY: show-vars
show-vars: VARS?=%
show-vars:
@:
$(foreach i, \
$(call clean-json, { \
$(foreach V, \
$(.VARIABLES), \
$(and $(filter $(VARS),$(V)) \
, \
$(filter-out environment% default automatic, $(origin $V)) \
, \
"$V": { \
"expanded": $(call mk-json-str,$($V))$(comma) \
"raw": $(call mk-json-str,$(value $V)) \
}$(comma) \
) \
) \
} ) \
, \
$(info $(i)) \
)
.PHONY: clean
clean:
rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \
$(BUILD_DIR) $(BASE_DIR)/staging \
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR) $(CPE_UPDATES_DIR) \
$(O)/pkg-stats.*
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR) $(O)/pkg-stats.*
.PHONY: distclean
distclean: clean
@@ -1133,6 +1166,9 @@ help:
@echo ' - Recursively list packages which have <pkg> as a dependency'
@echo ' <pkg>-graph-depends - Generate a graph of <pkg>'\''s dependencies'
@echo ' <pkg>-graph-rdepends - Generate a graph of <pkg>'\''s reverse dependencies'
@echo ' <pkg>-graph-both-depends'
@echo ' - Generate a graph of both <pkg>'\''s forward and'
@echo ' reverse dependencies.'
@echo ' <pkg>-dirclean - Remove <pkg> build directory'
@echo ' <pkg>-reconfigure - Restart the build from the configure step'
@echo ' <pkg>-rebuild - Restart the build from the build step'
@@ -1160,8 +1196,9 @@ help:
@echo ' legal-info - generate info about license compliance'
@echo ' show-info - generate info about packages, as a JSON blurb'
@echo ' pkg-stats - generate info about packages as JSON and HTML'
@echo ' missing-cpe - generate XML snippets for missing CPE identifiers'
@echo ' printvars - dump internal variables selected with VARS=...'
@echo ' show-vars - dump all internal variables as a JSON blurb; use VARS=...'
@echo ' to limit the list to variables names matching that pattern'
@echo
@echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build'
@echo ' make O=dir - Locate all output files in "dir", including .config'
@@ -1175,17 +1212,17 @@ help:
# $(2): br2-external name, empty for bundled
define list-defconfigs
@first=true; \
for defconfig in $(1)/configs/*_defconfig; do \
for defconfig in $$([ -d $(1)/configs ] && find $(1)/configs -name '*_defconfig' |sort); do \
[ -f "$${defconfig}" ] || continue; \
if $${first}; then \
if [ "$(2)" ]; then \
printf 'External configs in "$(call qstrip,$(2))":\n'; \
printf 'External configs in "%s":\n' "$(call qstrip,$(2))"; \
else \
printf "Built-in configs:\n"; \
fi; \
first=false; \
fi; \
defconfig="$${defconfig##*/}"; \
defconfig="$${defconfig#$(1)/configs/}"; \
printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \
done; \
$${first} || printf "\n"
@@ -1206,30 +1243,33 @@ release: OUT = buildroot-$(BR2_VERSION)
# documentation to the git output
release:
git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar
$(MAKE) O=$(OUT) manual-html manual-text manual-pdf
SOURCE_DATE_EPOCH=$$(git log -1 --format=%at 2> /dev/null) \
$(MAKE) O=$(OUT) manual-html manual-text manual-pdf
$(MAKE) O=$(OUT) distclean
tar rf $(OUT).tar $(OUT)
gzip -9 -c < $(OUT).tar > $(OUT).tar.gz
bzip2 -9 -c < $(OUT).tar > $(OUT).tar.bz2
tar rf $(OUT).tar --owner=0 --group=0 \
--mtime="$$(git log -1 --pretty=format:%ci)" $(OUT)
gzip -9 -n -c < $(OUT).tar > $(OUT).tar.gz
xz -9 -c < $(OUT).tar > $(OUT).tar.xz
rm -rf $(OUT) $(OUT).tar
print-version:
@echo $(BR2_VERSION_FULL)
check-flake8:
$(Q)git ls-tree -r --name-only HEAD \
| xargs file \
| grep 'Python script' \
| cut -d':' -f1 \
| xargs -- python3 -m flake8 --statistics
check-package:
find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \
-exec ./utils/check-package {} +
$(Q)./utils/check-package `git ls-tree -r --name-only HEAD` \
--ignore-list=$(TOPDIR)/.checkpackageignore
.PHONY: .checkpackageignore
.checkpackageignore:
$(Q)./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` \
> .checkpackageignore
include docs/manual/manual.mk
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
.PHONY: $(noconfig_targets)
# .WAIT was introduced in make 4.4. For older make, define it as phony.
.PHONY: .WAIT
endif #umask / $(CURDIR) / $(O)

566
README.md
View File

@@ -12,45 +12,35 @@
# ShredOS x86_64 - Disk Eraser
## For all Intel and compatible 64 & 32 bit processors
## For PCs, Servers and Macs with Intel and AMD 64 & 32 bit processors
#### As well as a 64bit versions, also included are 32bit .img & .iso images of ShredOS that will run on both 32bit and 64bit processors, see [Release Assets](https://github.com/PartialVolume/shredos.x86_64/releases) and the table of download links below. For those that wish to build their own ShredOS from source, rather than just burn the .img/.iso images, instructions for modififing the x86_64 build to generate 32bit code as well as .iso images will be included below in the notes in due course.
#### As well as a 64bit versions, also included are 32bit .img & .iso images of ShredOS that will run on both 32bit and 64bit processors, see [Release Assets](https://github.com/PartialVolume/shredos.x86_64/releases) and the table of download links below. For those that wish to build their own ShredOS from source, rather than just burn the .img/.iso images, follow the build instructions and make use of the supplied build configurations. Please note the additional information provided to run ShredOS on Apple systems.
#### For those that just want to get on with using ShredOS, you can download the prebuild .img or .iso images and burn them straight to USB flash drive or CD/DVD. Boot from the USB flash drive or CD/DVD and nwipe will appear ready for you to select your preferred wipe options.
#### For those that just want to get on with using ShredOS, you can download the pre-built .img or .iso images and burn them straight to USB flash drive or CD/DVD. Boot from the USB flash drive or CD/DVD and nwipe will appear ready for you to select your preferred wipe options.
[![GitHub all releases](https://img.shields.io/github/downloads/PartialVolume/shredos.x86_64/total?label=Total%20downloads%20x86_64%20all%20releases,%2064%20and%2032bit%20code,%20.iso%20and%20.img%20&style=plastic)](https://github.com/PartialVolume/shredos.x86_64/releases)
### ShredOS version v2025.11_28_x86-64_0.40 [(Latest release - Release notes and downloads)](https://github.com/PartialVolume/shredos.x86_64/releases/tag/v2025.11_28_x86-64_0.40)
## Download the Latest ShredOS .img and .iso files for burning to USB flash drives and CD-R/DVD-R.
> **Warning**
> v2021.08.2_23_x86-64_0.34 (v23) is missing the AMDGPU, Radeon and Intel firmware and therefore on some systems will not boot to the nwipe program. If you find your system doesn't boot please try the preview version, v2021.08.2_23.1_x86-64_0.34 (v23.1), see [release page](https://github.com/PartialVolume/shredos.x86_64/releases/tag/v2021.08.2_23.1_x86-64_0.34) for the details and [shredos-2021.08.2_23.1_x86-64_0.34_20230320.img](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_23.1_x86-64_0.34/shredos-2021.08.2_23.1_x86-64_0.34_20230320.img) for the .img file to burn to a USB stick. This pre-release version includes the missing firmware required for DRM graphics. Please leave a comment in [discussions](https://github.com/PartialVolume/shredos.x86_64/discussions/134) on whether it worked (or not), with the preview version (23.1) of ShredOS
NOTE! There may be pre-release versions that are newer than the latest versions listed below, To see all versions, [pre-release & latest](https://github.com/PartialVolume/shredos.x86_64/releases) The latest versions contain a full set of .img & .iso images in 32bit & 64bit while the pre-releases generally only contain a 64bit .img. Which should you use? Well, unless you need either 32 bit images or .iso images I would tend to download the very latest pre-release. Even the pre-releases are subjected to a fair amount of testing before they become a pre-release.
### ShredOS version v2021.08.2_23_x86-64_0.34 (LATEST RELEASE)
| Media | Nwipe Version | File to download |
| -- | -- | -- |
| 64bit .img for USB flash drive | v0.34 | [ShredOS .img 64bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_23_x86-64_0.34/shredos-2021.08.2_23_x86-64_0.34_20221231.img) |
| 64bit .iso for CD/DVD | v0.34 | [ShredOS .iso 64bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_23_x86-64_0.34/shredos-2021.08.2_23_x86-64_0.34_20221231.iso) |
| 32bit .img for USB flash drive | v0.34 | [ShredOS .img 32bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_23_x86-64_0.34/shredos-2021.08.2_23_i586_0.34_32-bit_20221231.img) |
| 32bit .iso for CD/DVD | v0.34 | [ShredOS .iso 32bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_23_x86-64_0.34/shredos-2021.08.2_23_i586_0.34_32-bit_20221231.iso) |
### ShredOS version v2021.08.2_21_x86-64_0.32.023 (PREVIOUS RELEASE)
| Media | Nwipe Version | File to download |
| -- | -- | -- |
| 64bit .img for USB flash drive | v0.32.023 | [ShredOS .img 64bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_x86-64_0.32.023_20220123.img) |
| 64bit .iso for CD/DVD | v0.32.023 | [ShredOS .iso 64bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_x86-64_0.32.023_20220126.iso) |
| 32bit .img for USB flash drive | v0.32.023 | [ShredOS .img 32bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_i586_0.32.023_20220126.img) |
| 32bit .iso for CD/DVD | v0.32.023 | [ShredOS .iso 32bit](https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_i586_0.32.023_20220126.iso) |
### For all releases including latest and more recent pre-releases [releases](https://github.com/PartialVolume/shredos.x86_64/releases)
Note: The .img files for burning to USB flash drives support both bios/UEFI booting. The .iso image currently supports legacy bios booting only and not UEFI, however, a bios/UEFI version of the .iso is in development and will be released shortly.
You can also consider [VENTOY (Open Source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files)](https://github.com/ventoy/Ventoy) as a workaround to avoid bios/UEFI issues.
Note for versions **after** _v2024.11_27_x86-64_0.38_: The .img files for burning to USB flash drives support both BIOS/UEFI booting, as well as saving of generated PDF reports to the USB flash drive. The .iso image also supports both BIOS/UEFI booting, burning to USB flash drives and CD/DVD-ROM and if you use the `partion-plus` iso, saving of generated PDF reports to the USB flash drive. Use the .img file whenever planning to customize ShredOS (`autonuke` setups, kernel parameters, ...). The .img file also allows direct interaction with the filesystem and modification of the GRUB boot menu, e.g. appending of kernel parameters, which the .iso file does not support due to filesystem constraints.
Note for versions **until** _v2024.11_27_x86-64_0.38_: The .img files for burning to USB flash drives support both BIOS/UEFI booting. The .iso image supports legacy BIOS booting only and not UEFI, however, a BIOS/UEFI version of the .iso is available in newer ShredOS versions.
You can also consider [VENTOY (Open Source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files)](https://github.com/ventoy/Ventoy) as a workaround to avoid BIOS/UEFI issues.
#### Demo video showing ShredOS having booted straight into Nwipe where you can then select one or more drives to be erased.
#### Demo video below: ShredOS automatically displays Nwipe's interactive GUI at boot.
You can then select one or more drives to be erased, wipe method or pattern to be used, number of rounds, whether a zeros blanking pass is applied, verification options such as last pass, all passes or no verification. ShredOS and nwipe are highly configurable so if you prefer to run nwipe without a GUI then you can configure nwipe by applying nwipe options to the linux command line in grub.cfg on the USB flash drive.
![Example wipe](/images/example_wipe.gif)
#### Below: Example of ShredOS's (Nwipe) multi page PDF certificate.
A certificate can optionally be created for each drive erased, the default is to create the certificate, but can be disabled by either an nwipe option applied in grub.cfg or via the nwipe configuration menu. The status of which is saved to the USB stick you booted from, so next time you boot from the USB stick the configuration settings are remembered. The first page of the PDF certificate contains details of the erasure and whether it was succesfully erased, failed due to drive errors, or partially erased due to HPA/DCO hidden sectors. Pages two and three contain the drives smart data.
![Example Certificate](/images/PDF_certificate_example.gif)
1. [What is ShredOS?](#what-is-shredos)
1. [What do I do after I've erased everything on my disk? What is actually erased?](#what-do-i-do-after-ive-erased-everything-on-my-disk-what-is-actually-erased)
1. [Nwipe's erasure methods](#nwipes-erasure-methods)
@@ -58,21 +48,30 @@ You can also consider [VENTOY (Open Source tool to create bootable USB drive for
1. [Linux and MAC users](#linux-and-mac-users)
1. [Windows users](#windows-users)
1. [Multi OS with VENTOY](#multi-os-with-ventoy)
1. [How to edit the ShredOS /EFI/BOOT/grub.cfg and boot/grub.cfg files when using Ventoy with ShredOS .img files](#how-to-edit-the-shredos-efibootgrubcfg-and-bootgrubgrubcfg-files-when-using-ventoy-with-shredos-img-files)
1. [A word about the MAC Book Pro](#a-word-about-the-mac-book-pro)
1. [Having trouble with USB adapters not working/hanging, want to buy one that works properly!](https://github.com/PartialVolume/shredos.x86_64/discussions/128#discussion-4906723)
1. [Virtual terminals](#virtual-terminals)
1. [How to exclude the fat formatted shredos boot drive from nwipe interactive and autonuke modes](https://github.com/PartialVolume/shredos.x86_64?tab=readme-ov-file#how-to-exclude-the-fat-formatted-shredos-boot-drive-from-nwipe-interactive-and-autonuke-modes)
1. [How to run nwipe so you can specify nwipe command line options](#how-to-run-nwipe-so-you-can-specify-nwipe-command-line-options)
1. [How to change the default nwipe options so the change persists between reboots](#how-to-change-the-default-nwipe-options-so-the-change-persists-between-reboots)
1. [How to set the keyboard map using the loadkeys command (see here for persistent change between reboots](#how-to-set-the-keyboard-map-using-the-loadkeys-command-see-here-for-persistent-change-between-reboots)
1. [How to make a persistent change to keyboard maps](#how-to-make-a-persistent-change-to-keyboard-maps)
1. [Reading and saving nwipes log files - via USB (manually) or ftp (manually & automatically)](#reading-and-saving-nwipes-log-files---via-usb-manually-or-ftp-manually--automatically)
1. [Saving nwipes PDF certificates and log files to USB ftp or tftp servers](#saving-nwipes-pdf-certificates-and-log-files-to-USB-ftp-or-tftp-servers)
1. [Transferring nwipe log files to a USB storage device](#transferring-nwipe-log-files-to-a-usb-storage-device)
1. [Transferring nwipe log files to a ftp server](#transferring-nwipe-log-files-to-a-ftp-server)
1. [Transferring nwipe log files to a ftp server using lftp](#transferring-nwipe-log-files-to-a-ftp-server-using-lftp)
1. [How to wipe drives on headless systems or systems with faulty display hardware. (For use on secure LANs only)](#how-to-wipe-drives-on-headless-systems-or-systems-with-faulty-display-hardware-for-use-on-secure-lans-only)
1. [Nwipe's font size is too small, I want the text to be bigger](#nwipes-font-size-is-too-small-I-want-the-text-to-be-bigger)
1. [Shredos includes the following related programs](#shredos-includes-the-following-related-programs)
1. [Nwipe's font size is too small, How to double the size of the text](#nwipes-font-size-is-too-small-how-to-double-the-size-of-the-text)
1. [Included Packages](#Included-Packages)
1. [smartmontools](#smartmontools)
1. [hexedit](#hexedit)
1. [hdparm](#hdparm)
1. [hexedit](#hexedit)
1. [nvme-cli](#hdparm)
1. [sg3_utils](#sg3_utils)
1. [parallel](#parallel)
1. [Wipe SSD and NVME using hdparm and nvme-cli](#wipe-ssd-and-nvme-using-hdparm-and-nvme-cli)
1. [Wipe SSD](#wipe-ssd)
1. [Wipe NVME](#wipe-nvme)
1. [Compiling shredos and burning to USB stick, the harder way!](#compiling-shredos-and-burning-to-usb-stick-the-harder-way-)
1. [Install the following prerequisite software first. Without this software, the make command will fail](https://github.com/PartialVolume/shredos.x86_64/blob/master/README.md#install-the-following-prerequisite-software-first-without-this-software-the-make-command-will-fail)
1. [Download the ShredOS source using the git command and build ShredOS](https://github.com/PartialVolume/shredos.x86_64/blob/master/README.md#download-the-shredos-source-using-the-git-command-and-build-shredos)
@@ -88,6 +87,10 @@ You can also consider [VENTOY (Open Source tool to create bootable USB drive for
1. [../package/nwipe/nwipe.hash](#packagenwipenwipehash)
1. [../package/nwipe/Config.in](#packagenwipeconfigin)
1. [../package/nwipe/002-nwipe-banner-patch.sh](#packagenwipe002-nwipe-banner-patchsh)
1. [Troubleshooting](#Troubleshooting)
1. [Small Font Size and Inteface](#Small-Font-Size-and-Interface)
1. [Disks with Non-Standard Blocksizes](#Drives-with-Non-Standard-Blocksizes)
1. [Disks with Integrity Protection](#Drives-with-Integrity-Protection)
## What is ShredOS?
ShredOS is a USB bootable (BIOS or UEFI) small linux distribution with the sole purpose of securely erasing the entire contents of your
@@ -95,29 +98,27 @@ disks using the program [nwipe](https://github.com/martijnvanbrummelen/nwipe). I
ShredOS supports either 32bit or 64bit processors. You will need to download the appropriate 64bit or 32bit .img or .iso file, depending upon your target processor and whether you want to burn ShredOS to a USB memory stick, in which case you would download the .img file. Alternatively, if you wanted to burn ShredOS to CD/DVD, then you would download the .iso file.
Because ShredOS boots and runs straight from a USB flash drive or DVD/CD, it doesn't matter what operating system already exists on the computer. It will remove all data/directories/operating systems, from the drive or drives you have selected for wiping, leaving a disk with no trace of what originally existed. It will wipe PCs & Intel-based Macs, such as MacBookPros. It doesn't care what operating system previously existed, be it Windows/Mac OSX/Linux/VXWorks.
ShredOS can be used as a software image and booted via the network using a client PC that supports Preboot execution environment (PXE) via a PXE enabled server. A procedure for creating a simple UEFI PXE server based on Debian/Ubuntu and serving up ShredOS can be found here [#148](https://github.com/PartialVolume/shredos.x86_64/discussions/148)
You can also use ShredOS on headless systems or systems with faulty display hardware as it includes a user enabled telnet server. Further details can be found here. [How to wipe drives on headless systems or systems with faulty or missing display hardware or keyboards](#how-to-wipe-drives-on-headless-systems-or-systems-with-faulty-display-hardware-for-use-on-secure-lans-only)
ShredOS includes the latest Nwipe official release, but in addition includes other disc related utilities such as Smartmontools, hdparm, a hexeditor [hexedit](https://linux.die.net/man/1/hexedit), and, the program loadkeys which can be used for [setting the keyboard layout](https://github.com/PartialVolume/shredos.2020.02/blob/master/README.md#how-to-set-the-keyboard-map-using-the-loadkeys-command-see-here-for-persistent-change-between-reboots). Nwipe automatically starts it's GUI in the first virtual terminal (ALT-F1), hdparm, smartmontools and hexeditor can be run in the second virtual terminal, (ALT-F2). Nwipe will erase drives using a user selectable choice of seven methods. hdparm - amongst many of its options - can be used for wiping a drive by [issueing ATA erase commands to the drive's internal firmware](https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase). This is a planned feature addition to nwipe.
ShredOS includes the latest Nwipe official release, but in addition includes other disk related utilities such as Smartmontools, hdparm, a hexeditor [hexedit](https://linux.die.net/man/1/hexedit), and, the program loadkeys which can be used for [setting the keyboard layout](https://github.com/PartialVolume/shredos.2020.02/blob/master/README.md#how-to-set-the-keyboard-map-using-the-loadkeys-command-see-here-for-persistent-change-between-reboots). Nwipe automatically starts its GUI in the first virtual terminal (ALT-F1), hdparm, smartmontools and hexeditor can be run in the second virtual terminal, (ALT-F2). Nwipe will erase drives using a user-selectable choice of seven methods. hdparm - amongst many of its options - can be used for wiping a drive by issueing [ATA erase commands](https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase) or [SAS erase commands](https://github.com/gms-electronics/formatingguide) interface commands to the firmware of the storrage device. This is a planned feature addition to nwipe.
ShredOS boots very quickly and depending upon the host system can boot in as little as 2 seconds (typically 4 to 6 seconds) on modern hardware, while on an old Pentium4 may take 40+ seconds. Nwipe automatically starts in GUI mode and will list the disks present on the host system. In fact, Nwipe can launch so fast that the USB devices have not yet initialised so the first time nwipe appears it may not show any USB drives. If you then use Control-C to exit and restart nwipe, you should now see any attached USB devices. You can then select the methods by which you want to securely erase the disk/s. Nwipe is able to simultanuosly wipe multiple disks using a threaded software architecture. I have simultaneously wiped 28 loop devices in tests and know of instances where it's been used to wipe upwards of 10 drives on a system.
ShredOS boots very quickly and depending upon the host system can boot in as little as 2 seconds (typically 4 to 6 seconds) on modern hardware, while on an old Pentium4 may take 40+ seconds. Nwipe automatically starts in GUI mode and will list the disks present on the host system. In fact, on version of ShredOS earlier than [v2023.08.2_25.0_x86-64_0.35](https://github.com/PartialVolume/shredos.x86_64/releases/tag/v2023.08.2_25.0_x86-64_0.35) nwipe can launch so fast that the USB devices have not yet initialised so the first time nwipe appears it may not show any USB drives, this behaviour has been fixed from version v2023.08.2_25.0_x86-64_0.35 onwards so there will usually be a delay of about 5-10 seconds while the USB devices are initialised. On older versions of ShredOS you would use Control-C to exit and restart nwipe to see any attached USB devices. You can then select the methods by which you want to securely erase the disk/s. Nwipe is able to simultanuosly wipe multiple disks using a threaded software architecture. I have simultaneously wiped 28 loop devices in tests and know of instances where it's been used to simultaneuosly wipe upwards of fifty drives on a rack server.
The vanilla version of ShredOS boots into nwipe's GUI and shows the available discs that can then be selected for wiping. It does not autonuke your discs at launch, however it is capable of doing that, if you edit the grub.cfg file and specify the appropriate nwipe command line option. Details of configuring nwipe's launch behaviour is shown below [How to run nwipe so you can specify nwipe command line options](https://github.com/PartialVolume/shredos.2020.02/blob/master/README.md#how-to-run-nwipe-so-you-can-specify-nwipe-command-line-options)
## What do I do after I've erased everything on my disk? What is actually erased?
> **Warning**
> Nwipe & therefore ShredOS does not automatically detect HDA (hidden disc areas) i.e the disc reporting a smaller size than it actually is. You should always run hdparm to detect for a HDA (and correct if necessary) before running a wipe.
>
>HPA/DCO detection and correction, along with the automatic creation of PDF certificates will appear in nwipe 0.35 and will be included in the next release of ShredOS.
This paragraph is for those that are not familiar with wiping discs. if you know what you are doing skip to the next section. So you have erased your disc with ShredOS/nwipe and nwipe reported zero errors and the disc was erased. In it's erased state and depending upon the method you used every block on the drive contains either zero's or meaningless random data. In this state the disc won't be recognised by your operating system except at a very low level or by specialised programs. You won't be able to write files to the disc because nwipe has removed everything, absolutely everything, the operating system is gone, all your data is gone, the partition table is gone, the file system gone, the MBR and all the files have been erased without a trace and will never ever be recovered from the disk. The only thing left is a whole load of zeros or random data. To make the disc usable again you will either need to format the disk, which creates a partition table and directory structure or install a new operating system such as Linux or Windows. Of course, if you are just disposing of or reselling the disk then you don't need to do anything else. So if you are reasonably happy that you know what you are doing and you understand that you will need to format the disc then I hope this software does it's job and is useful to you. Before you press that 'S' key to start the wipe, pause and double check you have selected the correct drive/s, something I always do !
This paragraph is for those that are not familiar with wiping disks. if you know what you are doing skip to the next section. So you have erased your disk with ShredOS/nwipe and nwipe reported zero errors and the disk was erased. In its erased state and depending upon the method you used every block on the drive contains either zeroes or meaningless random data. In this state the disk won't be recognised by your operating system except at a very low level or by specialised programs. You won't be able to write files to the disk because nwipe has removed everything, absolutely everything, the operating system is gone, all your data is gone, the partition table is gone, the file system gone, the MBR and all the files have been erased without a trace and will never ever be recovered from the disk. The only thing left is a whole load of zeros or random data. To make the disk usable again you will either need to format the disk, which creates a partition table and directory structure or install a new operating system such as Linux or Windows. Of course, if you are just disposing of or reselling the disk then you don't need to do anything else. So if you are reasonably happy that you know what you are doing and you understand that you will need to format the disk then I hope this software does its job and is useful to you. Before you press that 'S' key to start the wipe, pause and double check you have selected the correct drive/s, something I always do !
## Nwipe's erasure methods
* Fill With Zeros - Fills the device with zeros (0x00), one round only.
* Fill With Ones - Fills the device with ones (0xFF), one round only.
* RCMP TSSIT OPS-II - Royal Candian Mounted Police Technical Security Standard, OPS-II
* Fill With Zeros - Fills the device with zeros (0x00).
* Fill With Ones - Fills the device with ones (0xFF).
* RCMP TSSIT OPS-II - Royal Canadian Mounted Police Technical Security Standard, OPS-II
* DoD Short - The American Department of Defense 5220.22-M short 3 pass wipe (passes 1, 2 & 7).
* DoD 5220.22M - The American Department of Defense 5220.22-M full 7 pass wipe.
* Gutmann Wipe - Peter Gutmann's method (Secure Deletion of Data from Magnetic and Solid-State Memory).
@@ -129,6 +130,9 @@ This paragraph is for those that are not familiar with wiping discs. if you know
Nwipe also includes the following pseudo random number generators:
* Mersenne Twister (mt19937ar-cok)
* ISAAC (rand.c 20010626)
* ISAAC-64 (isaac64.c)
* Lagged Fibonacci (from v2024.02.2_26.0_x86-64_0.37)
* XORoshiro-256 (from v2024.02.2_26.0_x86-64_0.37)
## Obtaining and writing ShredOS to a USB flash drive, the easy way!
@@ -140,7 +144,7 @@ Download the latest ShredOS for either 32bit, 64bit, .img or .iso from [here](#d
Check it's not corrupt by running the following command and comparing with the checksum shown in the release notes:
```
$ sha1sum shredos.img.tar.gz (shasum instead of sha1sum if your using a MAC)
$ sha1sum shredos.img.tar.gz (shasum instead of sha1sum if you're using a Mac)
(example) sha1 db37ea8526a17898b0fb34a2ec4d254744ef08a1 shredos.img.tar.gz
```
If the image file has a .img.tar.gz extension then use the following commands to extract the .img file. If the file extension simply ends with .img and there is no tar.gz then skip this step.
@@ -148,9 +152,9 @@ If the image file has a .img.tar.gz extension then use the following commands to
$ gunzip shredos.img.tar.gz
$ tar xvf shredos.img.tar
```
If you are using linux or a MAC write the shredos.img file (also sometimes called shredos-2020MMDD.img i.e. shredos-20200418.img etc) to your USB flash drive using the following command. (/dev/sdx is the device name of your USB drive, this can be obtained from the results of sudo fdisk -l)
If you are using Linux or a Mac write the shredos.img file (also sometimes called shredos-2020MMDD.img i.e. shredos-20200418.img etc) to your USB flash drive using the following command. (/dev/sdx is the device name of your USB drive, this can be obtained from the results of sudo fdisk -l on linux and diskutil list on a Mac)
```
dd if=shredos.img of=/dev/sdx
sudo dd if=shredos.img of=/dev/sdx
```
#### Windows users:
@@ -166,11 +170,85 @@ Both MBR and GPT partition style are supported in the same way.
Most type of OS supported(Windows/WinPE/Linux/Unix/ChromeOS/Vmware/Xen...)
920+ ISO files are tested (List). 90%+ distros in distrowatch.com supported (Details).
Once your USB removable drive is having VENTOY installed, you just have to copy the latest .iso version of ShredOS at the root.
Once your USB removable drive is having VENTOY installed, you just have to copy the latest .img or .iso version of ShredOS to the root of your Ventoy USB stick
#### How to edit the ShredOS /EFI/BOOT/grub.cfg and boot/grub/grub.cfg files when using Ventoy with ShredOS .img files
As Ventoy simply requires you to copy the .img file to the root of the Ventoy USB stick, to edit the ShredOS grub.cfg files it's neccessary to unpack the ShredOS .img, edit the files and re-create the .img file that now includes the modified grub files. The procedure below shows you how to do this on a Linux distro.
Create a file on the disk that is slightly larger than the size of the ShredOS .img. In this example we will use shredos-2023.08.2_25.1_x86-64_0.35_20231202.img which is 260,646,656 bytes in size (260.64MByte, 248.57MiByte). So if we create a empty file that is 270Mbyte in size that should be sufficient. I'm going to go a bit over the top and create a 500MB file for this example but that isn't necessary if all you are doing is editing the grub files
```
>truncate -s 500M loopbackfile.img
```
Create a virtual disk, i.e /dev/loopx that uses the file we just created
```
>sudo losetup -fP loopbackfile.img
```
We need to determine what device name our loopbackfile.img is associated with. In our example we will assume losetup returns the device /dev/loop30
```
>sudo losetup -a | grep -i loopbackfile.img
/dev/loop30
```
We now have a virtual disk called /dev/loop30 that is 270MB in size. Now copy the shredos-2023.08.2_25.1_x86-64_0.35_20231202.img file onto this virtual disk using the dd command
```
>sudo dd if=shredos-2023.08.2_25.1_x86-64_0.35_20231202.img of=/dev/loop30
```
Determine the partition name of this ShredOS virtual drive. As can be seen below the partition name is /dev/loop30p1
```
>sudo fdisk -l /dev/loop30
Disk /dev/loop30: 500 MiB, 524288000 bytes, 1024000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/loop30p1 1263 509075 507813 248M c W95 FAT32 (LBA)
```
Mount the /dev/loop30p1 partition to a folder called virtual_disc
```
>mkdir virtual_disc
>sudo mount /dev/loop30p1 virtual_disc
```
You can now edit the grub.cfg files
```
>vi virtual_disc/EFI/BOOT/grub.cfg
>vi virtual_disc/boot/grub/grub.cfg
```
Once you have finished making your changes unmount the drive
```
>sudo umount virtual_disc
```
Create the new ShredOS .img file
```
>sudo dd if=/dev/loop30 of=shredos_with_mods.img
```
Copy shredos_with_mods.img to the root of the Ventoy USB stick and boot the Ventoy USB stick. You can confirm your changes to the kernel commmand line by booting ShredOS, switching to a virtual terminal ALT F2, and type `more /proc/cmdline`
## Virtual Terminals
ShredOS has three tty terminals, ALT-F1 (Where nwipe is initially launched), ALT-F2 (A virtual terminal), ALT-F3 (console log, login required which is root with no password).
ShredOS has four tty terminals, ALT-F1 (Where nwipe is initially launched), ALT-F2 (A virtual terminal), ALT-F3 (console log, login required which is root with no password), ALT-F4 ([SMART Monitoring Terminal](#smartdmt)). Typical use of a virtual terminal might be to run other disk related tools such as hdparm to remove hidden sectors or hexedit to display the contents of the disk as hexadecimal values.
## How to exclude the FAT formatted ShredOS Boot drive from Nwipe, interactive and autonuke modes
There are two methods that can be used to exclude the FAT formatted ShredOS boot drive from appearing in nwipe's interactive mode or autonuke modes.
- **Method 1:** The first method is to place the following string `shredos_exclude_boot_disc="yes"` on the kernel command line in /boot/grub/grub.cfg and EFI/BOOT/grub.cfg on the ShredOS boot drive. This method obviously requires access to the grub.cfg file so is particularily suitable if you are creating your ShredOS boot drive using dd, Rufus or a similiar program however it's not possible to use this method if you are copying the .iso or .img file to a Ventoy USB drive as you would need to either unpack, edit the grub.cfg files and repack the .img or build the .iso or .img from source after editing the grub.cfg in the source. So for Ventoy users who want to exclude the FAT formatted ShredOS boot drive you should consider method 2 below.
```
set default="0"
set timeout="0"
menuentry "shredos" {
linux /boot/shredos console=tty3 loglevel=3 shredos_exclude_boot_disc="yes"
```
- **Method 2:** The second method is to create a empty file on the ShredOS boot disk at this specific location `/etc/shredos/shredos_exclude_disc`. This method will work irespective of whether you created the ShredOS boot disk with dd, Rufus or copied the .iso/.img to a Ventoy flash drive.
**WARNING**
You should not place the string `/etc/shredos/shredos_exclude_disc` on multiple FAT formatted drives or for that matter any drive irrespective of formatting, expecting all the drives with this string to not appear in nwipe or not get wiped in interactive mode. The file `/etc/shredos/shredos_exclude_disc` should only appear on the one and only ShredOS boot drive on the system. Any other drives that contain `/etc/shredos/shredos_exclude_disc` will appear in nwipe and WILL get wiped in autonuke mode.
## Informations for Intel powered Apple Devices
Yes, ShredOS will boot on **Intel** powered Macs, however here's a few tips you may find useful.
- Booting from USB. Power off then power on holding down the `alt` key. After a few seconds select EFI boot.
- Due to the high resolution screens on a Mac Book Pro you may find the text displayed by nwipe and in the virtual terminals is very small. To enlarge the text follow the instructions [here](#nwipes-font-size-is-too-small-how-to-double-the-size-of-the-text).
- How to switch between virtual terminals on a Mac. On a PC it's usually (but not always) ALT F1 (/dev/tty1 - nwipe), ALT F2 (/dev/tty2 or /dev/tty0 - terminal), ALT F3 (/dev/console - console). However on a MAC you switch virtual terminals as follows. FN+ALT F1 (/dev/tty1 - nwipe), FN+ALT F2 (/dev/tty2 or /dev/tty0 - terminal), FN+ALT F3 (/dev/console).
## How to make a persistent change to the terminal resolution
@@ -236,8 +314,9 @@ menuentry "shredos" {
}
```
For reference and as of nwipe v0.32.014, listed below are all the options that you can use with nwipe and can place on the kernel command line in grub.cfg as described in the examples above.
For reference and as of nwipe v0.37 (from v2024.02.2_26.0_x86-64_0.37), listed below are all the options that you can use with nwipe and can place on the kernel command line in grub.cfg as described in the examples above.
```
sudo nwipe --help
Usage: nwipe [options] [device1] [device2] ...
Options:
-V, --version Prints the version number
@@ -269,6 +348,9 @@ Options:
off - Do not verify
last - Verify after the last pass
all - Verify every pass
Please mind that HMG IS5 enhanced always verifies the
last (PRNG) pass regardless of this option.
-m, --method=METHOD The wiping method. See man page for more details.
(default: dodshort)
@@ -281,13 +363,18 @@ Options:
one - Overwrite with ones (0xFF)
verify_zero - Verifies disk is zero filled
verify_one - Verifies disk is 0xFF filled
is5enh - HMG IS5 enhanced
-l, --logfile=FILE Filename to log to. Default is STDOUT
-p, --prng=METHOD PRNG option (mersenne|twister|isaac)
-P, --PDFreportpath=PATH Path to write PDF reports to. Default is "."
If set to "noPDF" no PDF reports are written.
-q, --quiet Anonymize logs/GUI by removing serial numbers
XXXXXX = S/N exists, ????? = S/N not obtainable
-p, --prng=METHOD PRNG option (mersenne|twister|isaac|isaac64|add_lagg_fibonacci_prng)
-q, --quiet Anonymize logs and the GUI by removing unique data, i.e.
serial numbers, LU WWN Device ID, and SMBIOS/DMI data
XXXXXX = S/N exists, ????? = S/N not obtainable
-r, --rounds=NUM Number of times to wipe the device using the selected
method (default: 1)
@@ -314,7 +401,7 @@ Options:
--exclude=/dev/sdc,/dev/sdd,/dev/mapper/cryptswap1
```
## How to set the keyboard map using the loadkeys command (see [here](#how-to-make-a-persistent-change-to-keyboard-maps) for persistent change between reboots)
You can set the type of keyboard that you are using by typing, `loadkeys uk`, `loadkeys us`, `loadkeys fr`, `loadkeys cf`, `loadkeys by`, `loadkeys cf`, `loadkeys cz` etc. See /usr/share/keymaps/i386/ for full list of keymaps. However you will need to add an entry to `loadkeys=uk` etc to grub.cfg for a persistent change between reboots.
You can set the type of keyboard that you are using by typing, `loadkeys uk`, `loadkeys us`, `loadkeys fr`, `loadkeys cf`, `loadkeys by`, `loadkeys cf`, `loadkeys cz` etc. See /usr/share/keymaps/i386/ for full list of keymaps. However you will need to add an entry to grub.cfg as shown in the example below for a persistent change between reboots.
Examples are:
(azerty:) azerty, be-latin1, fr-latin1, fr-latin9, fr-pc, fr, wangbe, wangbe2
@@ -354,8 +441,11 @@ menuentry "shredos" {
linux /boot/shredos console=tty3 loglevel=3 loadkeys=uk
}
```
## Reading and saving nwipes log files - via USB (manually) or ftp (manually & automatically)
The nwipe that is automatically launched in the first virtual terminal ALT-F1, creates a log file that contains the details of the wipe/s and a summary table that shows successfull erasure or failure. The file is time stamped within it's name. A new timestamped log file is created each time nwipe is started. The files can be found in the / directory. A example being nwipe_log_20200418-084910.txt. As of version [v2021.08.2_23_x86-64_0.34](https://github.com/PartialVolume/shredos.x86_64/releases/tag/v2021.08.2_23_x86-64_0.34) ShredOS will automatically copy the nwipe log files to the first FAT32 partition it finds, which is normally the ShredOS USB flash drive. In addition you can manually copy the log files or send them to a ftp server on your local area network. Both methods are described below starting with manually writing to a USB storage device. This is then followed by setting up grub.cfg to auto transfer the nwipe log files to a ftp server.
## Saving nwipes PDF certificates and log files to USB ftp or tftp servers
Nwipe creates a log file and one or more PDF certificates which show details of the disks and/or system being wiped. ShredOS creates a transfer.log and copy of the dmesg output which can be used for diagnostics. These files are automatically saved to the USB flash drive, if the user booted from a USB flash drive. Alternatively, if ShredOS has been configured, using the kernel command line options `shredos_output="..."`, `lftp="..."` in grub.cfg to output these file to a ftp or tftp server then the PDF & log files will be sent there instead. Please be aware the the lftp option is deprecated and may be removed in a new version. `shredos_output="..."` currently supports ftp and tftp with sftp to be added in a new release. Described below are details of how you can configure ShredOS to output log and PDF files automatically to network servers.
#### What is the nwipe log file
The nwipe that is automatically launched in the first virtual terminal ALT-F1, creates a log file that contains the details of the wipe/s and a summary table that shows successfull erasure or failure. The file is time stamped within it's name. A new timestamped log file is created each time nwipe is started. The files can be found in the / directory. A example being nwipe_log_20200418-084910.txt. As of version [v2021.08.2_23_x86-64_0.34](https://github.com/PartialVolume/shredos.x86_64/releases/tag/v2021.08.2_23_x86-64_0.34) ShredOS will automatically copy the nwipe log files to the first FAT32 partition it finds, which is normally the ShredOS USB flash drive. In addition you can manually copy the log files or send them to a ftp server on your local area network. Both methods are described below starting with manually writing to a USB storage device.
### Transferring nwipe log files to a USB storage device
1. Locate the device name of your USB stick from it's model & size.
@@ -364,7 +454,7 @@ For Linux: If the | character isn't displayed properly use loadkeys fr etc to se
```
fdisk -l | more
```
For MACS:
For Macs:
```
diskutil list
```
@@ -384,7 +474,7 @@ cp /nwipe_log* /store/
```
cd /;umount store
```
### Transferring nwipe log files to a ftp server
### Transferring nwipe log files to a ftp server using lftp
ShredOS uses the lftp application to transfer files to a remote server. To enable the automatic transfer of nwipe log files, you will need to edit both grub.cfg files (/boot/grub/grub.cfg and /EFI/BOOT/grub.cfg) on the ShredOS USB memory stick. In much the same way you you specify loadkeys or nwipe options which are described above, you edit the linux kernal command line and add the following lftp="open 192.168.1.60; user your-username your-password; cd data; mput nwipe_*.txt", changing the IP, username and password as required. As ftp does not encrypt data you should really only use it to transfer data on your local area network and not over the internet. sftp may be implemented at a future date if users request that feature. You can also manually use lftp on the command line (ALT-F2 or ALT-F3) if you prefer. I use this feature with a chrooted vsftpd ftp server on a Linux PC. The automatic transfer of nwipe log files will be initiated on completion of all wipes and after pressing any key in nwipe to exit. The lftp status will be shown after the nwipe summary table.
**IMPORTANT**
@@ -397,7 +487,7 @@ set default="0"
set timeout="0"
menuentry "shredos" {
linux /boot/shredos console=tty3 loglevel=3 lftp="open 192.168.1.60; user your-username your-password; cd data; mput nwipe_*.txt"
linux /boot/shredos console=tty3 loglevel=3 lftp="open 192.168.1.60; user your-username your-password; cd data; mput nwipe_*.txt; mput *.pdf"
}
```
**vsftpd configuration for a chrooted server**
@@ -475,62 +565,240 @@ Type `nwipe` as shown above and the nwipe GUI will be displayed and you can proc
> **Warning**
>Due to the insecure nature of telnet as opposed to ssh, it goes without saying that this method of accessing ShredOS & nwipe should only be carried out on a trusted local area network and never over the internet unless via a VPN or SSH tunnel. ssh access may be provided at a future date if it's requested.
## Nwipe's font size is too small, I want the text to be bigger
If you are using a monitor with a native high resolution you may find that nwipe's font size is too small for your liking, if that's the case, you just need to type the following command in the second virtual terminal `/bin/setfont -d -C /dev/tty1`
## Nwipes font size is too small How to double the size of the text
If you are using a monitor with a native high resolution you may find that nwipe's font size is too small for your liking. Type `F` to toggle the scaling of the interface to 200% during the disk selection screen or the progress screen.
#### Detail
Type ALT F2 (Fn ALT F2 on a MAC) to bring up the 2nd virtual console. Type the following tty command which will return the current console name. So from this result /dev/tty2 we can deduce that the default nwipe in ALT F1 is /dev/tty1. For reference ALT F3 is /dev/console.
```
tty
/dev/tty2
```
To set the font for the default nwipe in the first virtual console ALT F1 (/dev/tty1), type the following command in the 2nd virtual console (ALT F2)
```
/bin/setfont -d -C /dev/tty1
```
> **Warning**
>Always specify the full path to setfont, setfont -d -C /dev/tty1 without the /bin/ prefix, will not work! There are actually two different versions of setfont on Linux and if you ommit the prefix path you will be running the wrong setfont which won't work.
![image](https://user-images.githubusercontent.com/22084881/216849290-8e1c05d2-c856-4466-b76f-eec4ccd2d880.png)
Default font size on a high resolution monitor.
.
![image](https://user-images.githubusercontent.com/22084881/216849326-e9a5c3a0-4485-432a-a3c7-a72858faeab1.png)
![image](https://user-images.githubusercontent.com/22084881/216849290-8e1c05d2-c856-4466-b76f-eec4ccd2d880.png)
After running the setfont command.
## ShredOS includes the following related programs
![image](https://user-images.githubusercontent.com/22084881/216849326-e9a5c3a0-4485-432a-a3c7-a72858faeab1.png)
## Included Packages
#### smartmontools
Nwipes ability to detect serial numbers on USB devices now works on USB bridges who's chipset supports that functionality.Smartmontools provides nwipe with that capability. Smartmontools can be used in the second or third virtual terminal. ALT-F2 and ALT-F3.
Nwipes ability to detect serial numbers on USB devices now works on USB bridges who's chipset supports that functionality. Smartmontools provides nwipe with that capability. Smartmontools can be used in the second or third virtual terminal (ALT-F2 and ALT-F3).
#### hexedit
Use hexedit to examine and modify the contents of a hard disk. Hexedit can be used in the second or third virtual terminal. ALT-F2 and ALT-F3.
#### smartdmt
For convenience a SMART Monitoring Terminal is available in the fourth virtual terminal (ALT-F4).
It allows to observe all SMART information on one screen and without interacting with the command-line.
![smartdmt](/images/smartdmt.gif)
#### hdparm
hdparm has many uses and is a powerfull tool. Although Nwipe will be adding ATA secure erase capability, i.e using the hard disk own firmware to initiate an erase, nwipe currently wipes drives using the traditional method of writing to every block. If you want to initiate a ATA secure erase using the drives firmware then hdparm will be of use.
#### hexedit
Use hexedit to examine and modify the contents of a hard disk. Hexedit can be used in the second or third virtual terminal. ALT-F2 and ALT-F3.
#### nvme
nvme can be used run a secure erase on NVMe devices.
#### sg3_utils
Like hdparm sg3_utils has many applications such as changes to the disk's block sizes, removal of scsi integrity protection and firmware level reformating (such as sanitization or secure erase). nwipe currently wipes drives using the traditional method of writing to every block. If you want to initiate a SCSI / SAS secure erase using the drives firmware then sg3_utils will be of use, it can also be used in conjunction with gnu parallel to format multiple drives at once.
#### parallel
GNU parallel is a shell tool for executing jobs in parallel using one or more computers. It can be helpfull when you need sg3_utils or hdparm to prepare multiple disks at the same time.
## Wipe SSD and NVME using hdparm and nvme-cli
>[!CAUTION]
>Make sure you have selected the correct device before issuing commands dealing with erasing/sanitizing as most of these commands do not ask for furter verification.(see e.g --yes-i-know-what-i-am-doing)
#### Wipe SSD
>[!NOTE]
>SANITIZE is prefered over SECURITY ERASE UNIT if supported by the drive.
>As Sanitize will remove both the mappings table and the blocks that have been written to, while SECURITY ERASE UNIT will only delete the mapping table. Therefore the latter is faster to complete.
Press `ALT+F2` to open a virtual terminal.
Find disks on the system
```
$ fdisk -l
```
Check that the drive is not frozen
```
$ hdparm -I /dev/sdX | grep frozen
...
not frozen
...
```
If frozen (repeat until not frozen)
```
$ echo -n mem > /sys/power/state
```
or alternatively, use the following command which sends the computer to sleep and then automatically powers the computer back up after 5 seconds. See ShredOS wiki for details on [sleep states](https://github.com/PartialVolume/shredos.x86_64/wiki/Unfreezing-hard-drives-for-ATA-secure-erase) These commands will only work reliably if you are using the vanilla version of ShredOS. This is because the Linux Direct Rendering Manager (DRM) is required to correctly wake the display hardware, with the nomodeset version of ShredOS DRM is disabled and you may end up with a blank screen after rewaking.
```
rtcwake -m mem -s 5
```
##### SANITIZE:
Check for support
```
$ hdparm --sanitize-status /dev/sdx
/dev/sdX:
Issuing SANITIZE_STATUS command
Sanitize status:
State: SD0 Sanitize Idle
```
>if not move on to [secure erase](#security-erase-unit).
Check for block erase support
```
$ hdparm -I /dev/sdX | grep BLOCK_ERASE_EXT
* BLOCK_ERASE_EXT command
```
>While BLOCK_ERASE_EXT should be sufficient, CRYPTO_SCRAMBLE_EXT and OVERWRITE_EXT might be more appliceable for your use.
Sanitize the disk
```
$ hdparm --yes-i-know-what-i-am-doing --sanitize-block-erase /dev/sdX
```
Check status
```
$ hdparm --sanitize-status /dev/sdX
```
Verify
```
$ dd if=/dev/sdX bs=8192 status=progress | hexdump
```
##### SECURITY ERASE UNIT:
Check that it is not frozen and you can also see the estimated time to run.
```
$ hdparm -I /dev/sdX
...
not frozen
...
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
...
```
If frozen (repeat until not frozen)
```
$ echo -n mem > /sys/power/state
```
Set user and password then erase disk
```
$ hdparm --user-master u --security-set-pass p /dev/sdX security_password="p"
$ hdparm --user-master u --security-erase p /dev/sdX security_password="p"
```
>If your drive supports enhanced erase, you may want to substitute security-erase with security-erase-enhanced.
Verify
```
$ dd if=/dev/sdX bs=8192 status=progress | hexdump
```
#### Wipe NVME
>[!NOTE]
>Sanitize is the prefered method but might not be supported by all vendors as it is an optional feature.
Press `ALT+F2` to open a virtual terminal.
Lists disks on the system:
```
$ nvme list
```
##### SANITIZE:
Check for support
```
$ nvme id-ctrl -H /dev/nvmeX | grep Sanitize
...
[1:1] : 0x1 Block Erase Sanitize Operation Supported
[0:0] : 0x1 Crypto Erase Sanitize Operation Supported
...
```
Sanitize the disk
```
$ nvme sanitize -a 2 /dev/nvmeX
```
>While Block Erase should be sufficient, Overwrite and Crypto Erase might be more appliceable for your use.
>Replace 2 for Block erase, 3 for Overwrite, 4 for Crypto Erase
Check Status
```
$ nvme sanitize-log /dev/nvmeX
Sanitize Progress (SPROG) : 65535
Sanitize Status (SSTAT) : 0x101
...
```
>Status: 0x101 denotes complete.
Verify
```
$ dd if=/dev/nvmeX bs=8192 status=progress | hexdump
```
##### SECURE ERASE:
Check for support
```
$ nvme id-ctrl /dev/nvmeX | grep fna
fna : 0x4
```
If crypto erase is supported(0x4 as above)
```
$ nvme format /dev/nvmeX -n 0xffffffff ses=2
```
else
```
$ nvme format /dev/nvmeX -n 0xffffffff -ses=1
```
Verify
```
$ dd if=/dev/nvmeX bs=8192 status=progress | hexdump
```
## Compiling ShredOS and burning to USB stick, the harder way !
The ShredOS system is based on the buildroot tool whos main application is to create operating systems for embedded systems.
The image (.img) file is approximately 60 MiB and can be written to a USB memory stick with a tool such as dd or Etcher.
The image (.img) file is approximately 260 MiB and can be written to a USB memory stick with a tool such as dd or Etcher.
### You can build shredos using the following commands. This example build was compiled on KDE Neon (Ubuntu 20.04).
### You can build shredos using the following commands. This example build was compiled on KDE Neon (Ubuntu 24.04 LTSl).
#### Install the following prerequisite software first. Without this software, the make command will fail
```
$ sudo apt install git
$ sudo apt install build-essential pkg-config automake libncurses5-dev autotools-dev libparted-dev dmidecode coreutils smartmontools
$ sudo apt-get install libssl-dev
$ sudo apt-get install libelf-dev
$ sudo apt-get install mtools
sudo apt update
sudo apt install \
automake \
autotools-dev \
build-essential \
cpio \
coreutils \
dmidecode \
dosfstools \
git \
libelf-dev \
libncurses5-dev \
libparted-dev \
libssl-dev \
mtools \
pkg-config \
smartmontools \
unzip
```
#### Download the ShredOS source using the git clone command, build ShredOS and write to a USB memory device.
```
$ git clone https://github.com/PartialVolume/shredos.x86_64.git (or shredos.i686.git for 32bit)
$ git clone https://github.com/PartialVolume/shredos.x86_64.git
$ cd shredos
$ mkdir package/shredos
$ touch package/shredos/Config.in
@@ -541,6 +809,49 @@ $ ls output/images/shredos*.img
$ cd output/images
$ dd if=shredos-20200412.img of=/dev/sdx (20200412 will be the day you compiled, sdx is the USB flash drive)
```
#### The following configurations are available to build different targets:
- `make shredos_defconfig` - build USB image and hybrid ISO (64-bit)
- `make shredos_lite_defconfig` - build lighter USB image and hybrid ISO (64-bit)
- `make shredos_i686_lite_defconfig` - build lighter USB image and hybrid ISO (32-bit)
#### The following experimental configurations are available for testing:
- `make shredos_iso_extra_defconfig` - build hybrid ISO with appended writeable partition (64-bit)
- `make shredos_iso_extra_i686_lite_defconfig` - build lighter hybrid ISO with appended writeable partition (32-bit)
Do note that loading a configuration should typically be the last step before `make`.
> **The hybrid ISOs offer the most flexibility over the other formats:**
>
>- are BIOS and UEFI bootable
>- can both be written to CD/DVD-ROM and USB flash drives
>- use ISOLINUX in BIOS for better compliance with very old systems
>- **but** do not have a writeable partition for PDFs/configurations
>
> Some tools such as Rufus offer an "ISO-Mode", which enable such a writeable
> partition at burn-time, which then also allows customization of the GRUB
> configuration.
>
#### Building multiple configurations:
Generally, when building multiple configurations of the above on the same
architecture, you only need to ensure that `make grub2-reconfigure` (and
eventually `make`) are run between any two configurations. The same applies to
any other package whose configuration has changed, adding corresponding
`<package>-reconfigure` steps, before the eventual `make`. A `make clean` step is
not usually required unless you have made significant changes to the project,
which should save time for such builds between same-architecture configurations.
For two configurations targeting different architectures, a full `make clean`
is always required when switching between them, plan time for this (takes long).
For your convenience, look also into the `build_all_shredos.sh` script in the
project root. If you invoke it with no arguments, it will show a usage manual
and allow you to build multiple configuration targets with more ease.
### Issues that you may get when building ShredOS
- **Error: "Internal Size Too Big"** If you are compiling the vanilla version of ShredOS and have made no alterations or additions but it fails to build the .img with the error "Internal error: size too big" then you may have a version of mtools that has a version of mcopy which has a bug whenever the -b option is used. This bug is known to exist in mcopy version 4.0.32 and maybe others but is fixed in v4.0.42. The solution is to upgrade your copy of mtools to a later version. However, if you have altered ShredOS by adding more packages you may need to update the size of the fat32 partition. You can do this by increasing the 'size' in ../board/shredos/genimage.cfg. Depending on how much extra software you have added increase the size by 10MB or more. Currently as of March 2023 the current size is `size = 130000000`, this is in bytes, so adding 10MB will mean you need to edit this value so that it reads `size = 140000000`. After the edit, just run `make` which will result in a quicker build. You don't need to run `make clean` first as that would result in a full rebuild which is not neccessary when all you are doing is increasing the final image size. If your repository does not supply a later version of mtools, then you can obtain mtools packages for various distros from [here](https://www.gnu.org/software/mtools/#downloads)
@@ -552,6 +863,9 @@ INFO: vfat(boot.vfat): cmd: "rm -f "/home/shredos/Downloads/shredos/mcopybug/shr
make[1]: [Makefile:823: target-post-image] Error 1
make: [Makefile:84: _all] Error 2
- **Konsole randomly closes in the middle of a build** If you are building on a KDE based distro like KDE Neon and the konsole gets killed by the kernels oom (out of memory) killer. The first sign that you have a problem is a pop up message appearing that says the oom killer has killed various processes. Once this notification appears you can't get rid of it. The following may help to resolve why the oom killer is activated:
1. Check your /swapfile size, for some reason a default install of KDE Neon and very likely ubuntu only create a /swapfile that's 512Mbytes. This is nowhere near large enough and you will get the oom killer randomly killing processes including the terminal that your build process is running in. If you have the disc space make the swap file the same size as your system memory. There is some debate over what should be the best size but when your system RAM is 16G and your swapfile is 0.5G that is asking for random processes to get killed especially if you are trying to build ShredOS.
1. Again, if building on the KDE platform with such a small swap file and 1Tbyte in your home directory the baloo file indexor will cause memory issues. So while building ShredOS, disable the file indexer. Your build will no longer crash and will be faster.
### Commands to configure buildroot, you will only need to use these if you are making changes to ShredOS
@@ -571,12 +885,39 @@ make busybox-menuconfig
make busybox-update-config # save the changes
```
### Important ShredOS files and folders when building ShredOS from source
#### ../board/shredos/doimg.sh
doimg.sh is a bash script, the main purpose of which is to generate the .img file located in output/images/. However it is also used to copy the pre-compiled .efi file and other files such as the shredos.ico, autorun.inf for Windows, README.txt. The contents of board/shredos/version.txt is also used to rename the .img file with version info and the current date and time.
#### ../build_all_shredos.sh
build_all_shredos.sh is a convenience script to build (multiple) ShredOS.
If launched without arguments, it will show a usage manual on the screen.
#### ../board/shredos/version.txt
This file contains the version information as seen in the title on nwipe's title bar, i.e. '2021.08.2_22_x86-64_0.32.023'. This version ingformation is also used when naming the .img file in ../output/images/ /board/shredos/version.txt is manually updated for each new release of ShredOS.
#### ../board/shredos/make_img_file.sh
make_img_file.sh is a bash script, the main purpose of which is to generate the .img file located in output/images/. However it is also used to copy the compiled .efi file and other files such as the shredos.ico, autorun.inf for Windows, README.txt. The contents of board/shredos/version.txt is also used to rename the .img file with version info and the current date and time.
#### ../board/shredos/make_iso_file.sh
make_iso_file.sh is a bash script, the main purpose of which is to rename the .iso file located in output/images/. The contents of board/shredos/version.txt is used to rename the .iso file with version info and the current date and time.
#### ../board/shredos/grub.cfg
The USB image's GRUB configuration, which both the BIOS and UEFI bootloader will use.
It contains the BIOS and UEFI boot menu for the USB image.
#### ../board/shredos/embed/grub.cfg
The GRUB configuration that is embedded into the GRUB images at build-time.
It contains directions for GRUB to find the right volume and GRUB configuration.
This applies for both the USB images and ISO images, and both for BIOS and UEFI.
#### ../board/shredos/iso/isolinux.cfg
The ISO image's ISOLINUX configuration, which the BIOS bootloader will use.
It contains the BIOS boot menu for the ISO image.
#### ../board/shredos/iso/grub.cfg
The ISO image's GRUB configuration, which the UEFI bootloader will use.
It contains the UEFI boot menu for the ISO image.
#### ../board/shredos/iso/efigrub.cfg
The GRUB configuration that is embedded into the ISO's UEFI partition.
It contains directions for GRUB to find the ISO9660's GRUB configuration.
#### ../board/shredos/fsoverlay/etc/shredos/version.txt
This file contains the version information as seen in the title on nwipe's title bar, i.e. '2021.08.2_22_x86-64_0.32.023'. This version ingformation is also used when naming the .img file in ../output/images/ ../board/shredos/fsoverlay/etc/shredos/version.txt is manually updated for each new release of ShredOS.
#### ../board/shredos/fsoverlay/
This fsoverlay directory contains files and folders that are directly copied into the root filesystem of ShredOS. A example of this is the ../board/shredos/fsoverlay/etc/inittab file where the tty1 and tty2 virtual terminals are configured. This is where you will find the script `/usr/bin/nwipe_launcher` that automatically starts in tty1 after ShredOS has booted. If you want to place or overwrite a specific file in the root filesystem of ShredOS, the ../board/shredos/fsoverlay/ directory is one way of inserting your own files.
@@ -602,4 +943,37 @@ This is a buildroot file that exists in each package. The only time it would be
#### ../package/nwipe/002-nwipe-banner-patch.sh
This script contains the changes that are made to nwipe's version.c
## Troubleshooting
### Small Font Size and Interface
On Some systems the fonts might be rendered too small.
#### Solution for small font size and interface
If you press `F` in the Drive Selection or during the wipe process, the interface will be scaled to 200% to allow better readability on high resolution displays.
### Drives with Non-Standard Blocksizes
Certain SAS disks come with block sizes that nwipe might not be able to digest.
In that case you can use sg_format to readjust the block size to a standard size such as `512` or `4096`.
#### Solution for Non-Standard Blocksizes
1. Keyboard shortcut ALT-F2 you can open the second virtual terminal to open the shell
2. List disks using `lsblk`
3. Identify the device with the wrong block size by executing `sg_format <device>`
4. Run `sg_format -f --format --size=<512 / 4096> <device> --quick`
5. Wait till the process terminated and check by executing `sg_format <device>` again.
A full guide to also reformat multiple disks [can be found here](https://github.com/gms-electronics/formatingguide/blob/main/README.md).
### Drives with Integrity Protection
Certain SAS disks (especially disks that are used in storage systems such as HP 3Par or comparible Dell EMC Solutions) come with particular SAS features preconfigured to protect the disk from cancellation.
#### Solution for Drives with Integrity
1. With ALT-F2 you can open the second virtual terminal to open the shell
2. List disks using `lsblk`
3. Identify the device with the wrong block size by executing `sg_format <device>`
4. Run `sg_format -v --fmtpinfo=0 --format --size=<512 / 4096> <device> --quick`
5. Wait till the process terminated and check by executing `sg_format <device>` again.
A full guide to also remove integrity protection from multiple disks [can be found here](https://github.com/gms-electronics/formatingguide/blob/main/README.md) can be found here.
#### END OF README.md

View File

@@ -9,10 +9,10 @@ config BR2_KERNEL_64_USERLAND_32
config BR2_SOFT_FLOAT
bool
config BR2_ARCH_HAS_MMU_MANDATORY
config BR2_USE_MMU
bool
config BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_ARCH_HAS_FDPIC_SUPPORT
bool
choice
@@ -23,7 +23,7 @@ choice
config BR2_arcle
bool "ARC (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
Synopsys' DesignWare ARC Processor Cores are a family of
32-bit CPUs that can be used from deeply embedded to high
@@ -31,7 +31,7 @@ config BR2_arcle
config BR2_arceb
bool "ARC (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
Synopsys' DesignWare ARC Processor Cores are a family of
32-bit CPUs that can be used from deeply embedded to high
@@ -49,7 +49,7 @@ config BR2_arm
config BR2_armeb
bool "ARM (big endian)"
# MMU support is set by the subarchitecture file, arch/Config.in.arm
select BR2_USE_MMU
help
ARM is a 32-bit reduced instruction set computer (RISC)
instruction set architecture (ISA) developed by ARM Holdings.
@@ -60,7 +60,6 @@ config BR2_armeb
config BR2_aarch64
bool "AArch64 (little endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
help
Aarch64 is a 64-bit architecture developed by ARM Holdings.
http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
@@ -69,30 +68,28 @@ config BR2_aarch64
config BR2_aarch64_be
bool "AArch64 (big endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
help
Aarch64 is a 64-bit architecture developed by ARM Holdings.
http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
http://en.wikipedia.org/wiki/ARM
config BR2_csky
bool "csky"
select BR2_ARCH_HAS_MMU_MANDATORY
# Most variants are supported by gcc-9+, except one that is
# handled as a special exception in package/gcc/Config.in.host
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
help
csky is processor IP from china.
http://www.c-sky.com/
http://www.github.com/c-sky
config BR2_i386
bool "i386"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
Intel i386 architecture compatible microprocessor
http://en.wikipedia.org/wiki/I386
config BR2_loongarch64
bool "LoongArch64"
select BR2_USE_MMU
select BR2_ARCH_IS_64
select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
help
LoongArch64 is 64-bit architecture developed by Loongson.
http://www.loongson.cn/
https://en.wikipedia.org/wiki/Loongson
config BR2_m68k
bool "m68k"
# MMU support is set by the subarchitecture file, arch/Config.in.m68k
@@ -102,7 +99,7 @@ config BR2_m68k
config BR2_microblazeel
bool "Microblaze AXI (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
bus based architecture (little endian)
@@ -111,7 +108,7 @@ config BR2_microblazeel
config BR2_microblazebe
bool "Microblaze non-AXI (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
bus based architecture (non-AXI, big endian)
@@ -120,7 +117,7 @@ config BR2_microblazebe
config BR2_mips
bool "MIPS (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
MIPS is a RISC microprocessor from MIPS Technologies. Big
endian.
@@ -129,7 +126,7 @@ config BR2_mips
config BR2_mipsel
bool "MIPS (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
MIPS is a RISC microprocessor from MIPS Technologies. Little
endian.
@@ -139,7 +136,7 @@ config BR2_mipsel
config BR2_mips64
bool "MIPS64 (big endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
MIPS is a RISC microprocessor from MIPS Technologies. Big
endian.
@@ -149,39 +146,23 @@ config BR2_mips64
config BR2_mips64el
bool "MIPS64 (little endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
MIPS is a RISC microprocessor from MIPS Technologies. Little
endian.
http://www.mips.com/
http://en.wikipedia.org/wiki/MIPS_Technologies
config BR2_nds32
bool "nds32"
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_ARCH_HAS_MMU_MANDATORY
help
nds32 is a 32-bit architecture developed by Andes Technology.
https://en.wikipedia.org/wiki/Andes_Technology
config BR2_nios2
bool "Nios II"
select BR2_ARCH_HAS_MMU_MANDATORY
help
Nios II is a soft core processor from Altera Corporation.
http://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II
config BR2_or1k
bool "OpenRISC"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
OpenRISC is a free and open processor for embedded system.
http://openrisc.io
config BR2_powerpc
bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
PowerPC is a RISC architecture created by Apple-IBM-Motorola
alliance. Big endian.
@@ -191,7 +172,7 @@ config BR2_powerpc
config BR2_powerpc64
bool "PowerPC64 (big endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
PowerPC is a RISC architecture created by Apple-IBM-Motorola
alliance. Big endian.
@@ -201,7 +182,7 @@ config BR2_powerpc64
config BR2_powerpc64le
bool "PowerPC64 (little endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
PowerPC is a RISC architecture created by Apple-IBM-Motorola
alliance. Little endian.
@@ -210,7 +191,6 @@ config BR2_powerpc64le
config BR2_riscv
bool "RISCV"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
help
RISC-V is an open, free Instruction Set Architecture created
@@ -222,7 +202,7 @@ config BR2_riscv
config BR2_s390x
bool "s390x"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
s390x is a big-endian architecture made by IBM.
http://www.ibm.com/
@@ -230,7 +210,7 @@ config BR2_s390x
config BR2_sh
bool "SuperH"
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_USE_MMU
help
SuperH (or SH) is a 32-bit reduced instruction set computer
(RISC) instruction set architecture (ISA) developed by
@@ -240,7 +220,7 @@ config BR2_sh
config BR2_sparc
bool "SPARC"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
SPARC (from Scalable Processor Architecture) is a RISC
instruction set architecture (ISA) developed by Sun
@@ -251,7 +231,7 @@ config BR2_sparc
config BR2_sparc64
bool "SPARC64"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
SPARC (from Scalable Processor Architecture) is a RISC
instruction set architecture (ISA) developed by Sun
@@ -262,7 +242,7 @@ config BR2_sparc64
config BR2_x86_64
bool "x86_64"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
help
x86-64 is an extension of the x86 instruction set (Intel i386
architecture compatible microprocessor).
@@ -325,11 +305,34 @@ config BR2_ARCH_NEEDS_GCC_AT_LEAST_11
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
config BR2_ARCH_NEEDS_GCC_AT_LEAST_12
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
config BR2_ARCH_NEEDS_GCC_AT_LEAST_13
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
config BR2_ARCH_NEEDS_GCC_AT_LEAST_14
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_ARCH_NEEDS_GCC_AT_LEAST_15
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_14
config BR2_ARCH_NEEDS_GCC_AT_LEAST_16
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_15
# The following string values are defined by the individual
# Config.in.$ARCH files
config BR2_ARCH
string
config BR2_NORMALIZED_ARCH
string
config BR2_ENDIAN
string
@@ -360,6 +363,12 @@ config BR2_GCC_TARGET_FPU
config BR2_GCC_TARGET_FLOAT_ABI
string
# The value of this option will be passed as --with-simd=<value> when
# building gcc (internal backend) or -simd=<value> in the toolchain
# wrapper (external toolchain)
config BR2_GCC_TARGET_SIMD
string
# The value of this option will be passed as --with-mode=<value> when
# building gcc (internal backend) or -m<value> in the toolchain
# wrapper (external toolchain)
@@ -376,56 +385,6 @@ config BR2_BINFMT_SUPPORTS_SHARED
config BR2_READELF_ARCH_NAME
string
# Set up target binary format
choice
prompt "Target Binary Format"
default BR2_BINFMT_ELF if BR2_USE_MMU
default BR2_BINFMT_FLAT
config BR2_BINFMT_ELF
bool "ELF"
depends on BR2_USE_MMU
select BR2_BINFMT_SUPPORTS_SHARED
help
ELF (Executable and Linkable Format) is a format for libraries
and executables used across different architectures and
operating systems.
config BR2_BINFMT_FLAT
bool "FLAT"
depends on !BR2_USE_MMU
help
FLAT binary is a relatively simple and lightweight executable
format based on the original a.out format. It is widely used
in environment where no MMU is available.
endchoice
# Set up flat binary type
choice
prompt "FLAT Binary type"
default BR2_BINFMT_FLAT_ONE
depends on BR2_BINFMT_FLAT
config BR2_BINFMT_FLAT_ONE
bool "One memory region"
help
All segments are linked into one memory region.
config BR2_BINFMT_FLAT_SHARED
bool "Shared binary"
depends on BR2_m68k
# Even though this really generates shared binaries, there is no libdl
# and dlopen() cannot be used. So packages that require shared
# libraries cannot be built. Therefore, we don't select
# BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
# Although this adds -static to the compilation, that's not a problem
# because the -mid-shared-library option overrides it.
help
Allow to load and link indiviual FLAT binaries at run time.
endchoice
if BR2_arcle || BR2_arceb
source "arch/Config.in.arc"
endif
@@ -434,8 +393,8 @@ if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm"
endif
if BR2_csky
source "arch/Config.in.csky"
if BR2_loongarch64
source "arch/Config.in.loongarch"
endif
if BR2_m68k
@@ -450,14 +409,6 @@ if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
source "arch/Config.in.mips"
endif
if BR2_nds32
source "arch/Config.in.nds32"
endif
if BR2_nios2
source "arch/Config.in.nios2"
endif
if BR2_or1k
source "arch/Config.in.or1k"
endif
@@ -490,4 +441,39 @@ if BR2_xtensa
source "arch/Config.in.xtensa"
endif
# Set up target binary format
choice
prompt "Target Binary Format"
default BR2_BINFMT_ELF if BR2_USE_MMU
default BR2_BINFMT_FLAT
config BR2_BINFMT_ELF
bool "ELF"
depends on BR2_USE_MMU
select BR2_BINFMT_SUPPORTS_SHARED
help
ELF (Executable and Linkable Format) is a format for libraries
and executables used across different architectures and
operating systems.
config BR2_BINFMT_FDPIC
bool "FDPIC"
depends on BR2_ARCH_HAS_FDPIC_SUPPORT
select BR2_BINFMT_SUPPORTS_SHARED
help
ELF FDPIC binaries are based on ELF, but allow the individual
load segments of a binary to be located in memory
independently of each other. This makes this format ideal for
use in environments where no MMU is available.
config BR2_BINFMT_FLAT
bool "FLAT"
depends on !BR2_USE_MMU
help
FLAT binary is a relatively simple and lightweight executable
format based on the original a.out format. It is widely used
in environment where no MMU is available.
endchoice
endmenu # Target options

View File

@@ -3,7 +3,7 @@ choice
default BR2_arc770d
depends on BR2_arc
help
Specific CPU to use
Specific CPU to use
config BR2_arc750d
bool "ARC 750D"
@@ -40,12 +40,12 @@ config BR2_archs38_full
config BR2_archs4x_rel31
bool "ARC HS48 rel 31"
help
Build for HS48 release 3.1
Build for HS48 release 3.1
config BR2_archs4x
bool "ARC HS48"
help
Latest release of HS48 processor
Latest release of HS48 processor
- Dual and Quad multiply and MAC operations
- Double-precision FPU
@@ -62,6 +62,9 @@ config BR2_ARCH
default "arc" if BR2_arcle
default "arceb" if BR2_arceb
config BR2_NORMALIZED_ARCH
default "arc"
config BR2_arc
bool
default y if BR2_arcle || BR2_arceb

View File

@@ -73,21 +73,35 @@ config BR2_ARM_CPU_HAS_THUMB2
config BR2_ARM_CPU_ARMV4
bool
select BR2_USE_MMU
config BR2_ARM_CPU_ARMV5
bool
select BR2_USE_MMU
config BR2_ARM_CPU_ARMV6
bool
select BR2_USE_MMU
config BR2_ARM_CPU_ARMV7A
bool
select BR2_USE_MMU
config BR2_ARM_CPU_ARMV7M
bool
select BR2_ARCH_HAS_FDPIC_SUPPORT
config BR2_ARM_CPU_ARMV8A
bool
select BR2_USE_MMU
# Armv9.0-A base specification is a super-set of Armv8.5-A. It is
# fully compatible with Armv8. This symbol is defined to allow checks
# for doing Armv9 optimization. Armv8 is also selected for
# compatibility.
config BR2_ARM_CPU_ARMV9A
bool
select BR2_ARM_CPU_ARMV8A
choice
prompt "Target Architecture Variant"
@@ -103,23 +117,19 @@ config BR2_arm920t
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_arm922t
bool "arm922t"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_fa526
bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_strongarm
bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv5 cores"
config BR2_arm926t
@@ -128,18 +138,11 @@ config BR2_arm926t
select BR2_ARM_CPU_MAYBE_HAS_VFPV2
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_iwmmxt
bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_xscale
bool "xscale"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv6 cores"
config BR2_arm1136j_s
@@ -147,34 +150,29 @@ config BR2_arm1136j_s
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_arm1136jf_s
bool "arm1136jf-s"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV2
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_arm1176jz_s
bool "arm1176jz-s"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_arm1176jzf_s
bool "arm1176jzf-s"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV2
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_arm11mpcore
bool "mpcore"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_MAYBE_HAS_VFPV2
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv7a cores"
config BR2_cortex_a5
@@ -184,7 +182,6 @@ config BR2_cortex_a5
select BR2_ARM_CPU_MAYBE_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a7
bool "cortex-A7"
select BR2_ARM_CPU_HAS_ARM
@@ -192,7 +189,6 @@ config BR2_cortex_a7
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a8
bool "cortex-A8"
select BR2_ARM_CPU_HAS_ARM
@@ -200,7 +196,6 @@ config BR2_cortex_a8
select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a9
bool "cortex-A9"
select BR2_ARM_CPU_HAS_ARM
@@ -208,7 +203,6 @@ config BR2_cortex_a9
select BR2_ARM_CPU_MAYBE_HAS_VFPV3
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a12
bool "cortex-A12"
select BR2_ARM_CPU_HAS_ARM
@@ -216,7 +210,6 @@ config BR2_cortex_a12
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a15
bool "cortex-A15"
select BR2_ARM_CPU_HAS_ARM
@@ -224,7 +217,6 @@ config BR2_cortex_a15
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a15_a7
bool "cortex-A15/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM
@@ -232,7 +224,6 @@ config BR2_cortex_a15_a7
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_cortex_a17
bool "cortex-A17"
@@ -241,7 +232,6 @@ config BR2_cortex_a17
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a17_a7
bool "cortex-A17/A7 big.LITTLE"
@@ -250,15 +240,15 @@ config BR2_cortex_a17_a7
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_pj4
bool "pj4"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
# Cortex-M cores are only supported for little endian configurations
if BR2_arm
comment "armv7m cores"
config BR2_cortex_m3
bool "cortex-M3"
@@ -275,6 +265,7 @@ config BR2_cortex_m7
select BR2_ARM_CPU_MAYBE_HAS_FPV5
select BR2_ARM_CPU_ARMV7M
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
endif # BR2_arm
endif # !BR2_ARCH_IS_64
comment "armv8 cores"
@@ -286,7 +277,6 @@ config BR2_cortex_a32
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a35
bool "cortex-A35"
@@ -295,7 +285,6 @@ config BR2_cortex_a35
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a53
bool "cortex-A53"
@@ -304,7 +293,6 @@ config BR2_cortex_a53
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57
bool "cortex-A57"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@@ -312,7 +300,6 @@ config BR2_cortex_a57
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57_a53
bool "cortex-A57/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@@ -320,7 +307,6 @@ config BR2_cortex_a57_a53
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a72
bool "cortex-A72"
@@ -329,7 +315,6 @@ config BR2_cortex_a72
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a72_a53
bool "cortex-A72/A53 big.LITTLE"
@@ -338,7 +323,6 @@ config BR2_cortex_a72_a53
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a73
bool "cortex-A73"
@@ -347,7 +331,6 @@ config BR2_cortex_a73
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_cortex_a73_a35
bool "cortex-A73/A35 big.LITTLE"
@@ -356,7 +339,6 @@ config BR2_cortex_a73_a35
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_cortex_a73_a53
bool "cortex-A73/A53 big.LITTLE"
@@ -365,14 +347,12 @@ config BR2_cortex_a73_a53
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_emag
bool "emag"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_exynos_m1
bool "exynos-m1"
@@ -381,63 +361,54 @@ config BR2_exynos_m1
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_falkor
bool "falkor"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_phecda
bool "phecda"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_qdf24xx
bool "qdf24xx"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_thunderx
bool "thunderx (aka octeontx)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_thunderxt81
bool "thunderxt81 (aka octeontx81)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt83
bool "thunderxt83 (aka octeontx83)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88
bool "thunderxt88"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88p1
bool "thunderxt88p1"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_xgene1
bool "xgene1"
@@ -446,7 +417,6 @@ config BR2_xgene1
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
comment "armv8.1a cores"
@@ -455,21 +425,18 @@ config BR2_thunderx2t99
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderx2t99p1
bool "thunderx2t99p1"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_vulcan
bool "vulcan"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
comment "armv8.2a cores"
@@ -478,21 +445,18 @@ config BR2_cortex_a55
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_cortex_a75
bool "cortex-A75"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_cortex_a75_a55
bool "cortex-A75/A55 big.LITTLE"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_cortex_a76
bool "cortex-A76"
@@ -501,7 +465,6 @@ config BR2_cortex_a76
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_cortex_a76_a55
bool "cortex-A76/A55 big.LITTLE"
@@ -510,8 +473,15 @@ config BR2_cortex_a76_a55
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_cortex_a78
bool "cortex-A78"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
config BR2_neoverse_n1
bool "neoverse-N1 (aka ares)"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@@ -519,14 +489,12 @@ config BR2_neoverse_n1
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_tsv110
bool "tsv110"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
comment "armv8.4a cores"
@@ -535,8 +503,29 @@ config BR2_saphira
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
comment "armv9.0a cores"
config BR2_cortex_a710
bool "Cortex-A710 (aka matterhorn)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV9A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
config BR2_neoverse_n2
bool "neoverse-N2 (aka perseus)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV9A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
comment "armv9.2a cores"
config BR2_cortex_a720
bool "Cortex-A720 (aka hunter)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV9A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_14
endchoice
config BR2_ARM_ENABLE_NEON
@@ -796,7 +785,7 @@ config BR2_ARM_INSTRUCTIONS_THUMB
# Thumb-1 and VFP are not compatible
depends on BR2_ARM_SOFT_FLOAT
help
This option instructions the compiler to generate Thumb
This option instructs the compiler to generate Thumb
instructions, which allows to mix 16 bits instructions and
32 bits instructions. This generally provides a much smaller
compiled binary size.
@@ -809,19 +798,52 @@ config BR2_ARM_INSTRUCTIONS_THUMB2
bool "Thumb2"
depends on BR2_ARM_CPU_HAS_THUMB2
help
This option instructions the compiler to generate Thumb2
This option instructs the compiler to generate Thumb2
instructions, which allows to mix 16 bits instructions and
32 bits instructions. This generally provides a much smaller
compiled binary size.
endchoice
choice
prompt "MMU Page Size"
default BR2_ARM64_PAGE_SIZE_4K
depends on BR2_aarch64 || BR2_aarch64_be
help
The default is 4KB, and you should probably keep this unless
you know what you are doing. In particular, the kernel
configuration must match this choice. If your kernel is
built by Buildroot, the kernel configuration is
automatically adjusted, but not if you built your kernel
outside of Buildroot.
config BR2_ARM64_PAGE_SIZE_4K
bool "4KB"
config BR2_ARM64_PAGE_SIZE_16K
bool "16KB"
config BR2_ARM64_PAGE_SIZE_64K
bool "64KB"
endchoice
config BR2_ARM64_PAGE_SIZE
string
default "4K" if BR2_ARM64_PAGE_SIZE_4K
default "16K" if BR2_ARM64_PAGE_SIZE_16K
default "64K" if BR2_ARM64_PAGE_SIZE_64K
config BR2_ARCH
default "arm" if BR2_arm
default "armeb" if BR2_armeb
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_NORMALIZED_ARCH
default "arm" if BR2_arm || BR2_armeb
default "arm64" if BR2_aarch64 || BR2_aarch64_be
config BR2_ENDIAN
default "LITTLE" if (BR2_arm || BR2_aarch64)
default "BIG" if (BR2_armeb || BR2_aarch64_be)
@@ -834,7 +856,6 @@ config BR2_GCC_TARGET_CPU
default "strongarm" if BR2_strongarm
# armv5
default "arm926ej-s" if BR2_arm926t
default "iwmmxt" if BR2_iwmmxt
default "xscale" if BR2_xscale
# armv6
default "arm1136j-s" if BR2_arm1136j_s
@@ -893,10 +914,16 @@ config BR2_GCC_TARGET_CPU
default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55
default "cortex-a76" if BR2_cortex_a76
default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55
default "cortex-a78" if BR2_cortex_a78
default "neoverse-n1" if BR2_neoverse_n1
default "tsv110" if BR2_tsv110
# armv8.4a
default "saphira" if BR2_saphira
# armv9.0a
default "cortex-a710" if BR2_cortex_a710
default "neoverse-n2" if BR2_neoverse_n2
# armv9.2a
default "cortex-a720" if BR2_cortex_a720
config BR2_GCC_TARGET_ABI
default "aapcs-linux" if BR2_arm || BR2_armeb

View File

@@ -1,49 +0,0 @@
choice
prompt "Target Architecture Variant"
default BR2_ck610
help
Specific CPU variant to use
config BR2_ck610
# Not supported by upstream gcc <= 9, and handled as a special
# exception in package/gcc/Config.in.host
bool "ck610"
config BR2_ck807
bool "ck807"
config BR2_ck810
bool "ck810"
config BR2_ck860
bool "ck860"
endchoice
config BR2_CSKY_FPU
bool "Enable FPU coprocessor"
depends on BR2_ck810 || BR2_ck807 || BR2_ck860
help
You can say N here if your C-SKY CPU doesn't have a
Floating-Point Coprocessor or if you don't need FPU support
for your user-space programs.
config BR2_CSKY_VDSP
bool "Enable VDSP enhanced instructions Co-processor"
depends on BR2_CSKY_FPU
config BR2_GCC_TARGET_FLOAT_ABI
default "soft" if !BR2_CSKY_FPU
default "hard" if BR2_CSKY_FPU
config BR2_ARCH
default "csky"
config BR2_ENDIAN
default "LITTLE"
config BR2_READELF_ARCH_NAME
default "CSKY"
# vim: ft=kconfig
# -*- mode:kconfig; -*-

138
arch/Config.in.loongarch Normal file
View File

@@ -0,0 +1,138 @@
# LoongArch CPU
choice
prompt "Target Architecture Variant"
default BR2_loongarch64_generic if BR2_ARCH_IS_64
config BR2_loongarch64_generic
bool "Generic LoongArch 64-bit"
depends on BR2_ARCH_IS_64
help
Generic LoongArch 64-bit processor.
config BR2_loongarch64_v1_0
bool "LoongArch64 ISA version 1.0"
depends on BR2_ARCH_IS_64
select BR2_ARCH_NEEDS_GCC_AT_LEAST_14
help
LoongArch64 ISA version 1.0 processor.
config BR2_loongarch64_v1_1
bool "LoongArch64 ISA version 1.1"
depends on BR2_ARCH_IS_64
select BR2_ARCH_NEEDS_GCC_AT_LEAST_14
help
LoongArch64 ISA version 1.1 processor.
endchoice
choice
prompt "FPU Type"
default BR2_LOONGARCH_FPU_64
config BR2_LOONGARCH_FPU_64
bool "64"
help
Allow the use of hardware floating-point instructions for
32-bit and 64-bit operations.
config BR2_LOONGARCH_FPU_32
bool "32"
# Only supported by lp64s and lp64f ABIs which are marked as broken
depends on BR2_BROKEN
help
Allow the use of hardware floating-point instructions for
32-bit operations only.
config BR2_LOONGARCH_FPU_NONE
bool "none"
# Only supported by lp64s ABI which is marked as broken
depends on BR2_BROKEN
help
Prevent the use of hardware floating-point instructions.
endchoice
choice
prompt "SIMD Type"
default BR2_LOONGARCH_SIMD_NONE
config BR2_LOONGARCH_SIMD_NONE
bool "none"
help
Prevent the use of hardware SIMD instructions.
config BR2_LOONGARCH_SIMD_LSX
bool "LSX"
depends on BR2_LOONGARCH_FPU_64
help
Enable generating instructions from the 128-bit LoongArch SIMD
Extension (LSX).
config BR2_LOONGARCH_SIMD_LASX
bool "LASX"
depends on BR2_LOONGARCH_FPU_64
help
Enable generating instructions from the 256-bit LoongArch
Advanced SIMD Extension (LASX) and the 128-bit LoongArch
SIMD Extension (LSX).
endchoice
choice
prompt "Target ABI"
default BR2_LOONGARCH_ABI_LP64D if BR2_ARCH_IS_64 && BR2_LOONGARCH_FPU_64
default BR2_LOONGARCH_ABI_LP64F if BR2_ARCH_IS_64 && BR2_LOONGARCH_FPU_32
default BR2_LOONGARCH_ABI_LP64S if BR2_ARCH_IS_64 && BR2_LOONGARCH_SIMD_NONE
config BR2_LOONGARCH_ABI_LP64D
bool "lp64d"
depends on BR2_ARCH_IS_64
depends on BR2_LOONGARCH_FPU_64
config BR2_LOONGARCH_ABI_LP64F
bool "lp64f"
depends on BR2_ARCH_IS_64
# Failed to build host GCC initial, pending investigation
depends on BR2_BROKEN
depends on BR2_LOONGARCH_FPU_64 || BR2_LOONGARCH_FPU_32
config BR2_LOONGARCH_ABI_LP64S
bool "lp64s"
depends on BR2_ARCH_IS_64
# GCC can't find libraries, pending investigation
depends on BR2_BROKEN
endchoice
config BR2_ARCH
default "loongarch64" if BR2_ARCH_IS_64
config BR2_NORMALIZED_ARCH
default "loongarch"
config BR2_ENDIAN
default "LITTLE"
config BR2_GCC_TARGET_ARCH
default "loongarch64" if BR2_loongarch64_generic
default "la64v1.0" if BR2_loongarch64_v1_0
default "la64v1.1" if BR2_loongarch64_v1_1
config BR2_GCC_TARGET_FPU
default "64" if BR2_LOONGARCH_FPU_64
default "32" if BR2_LOONGARCH_FPU_32
default "none" if BR2_LOONGARCH_FPU_NONE
config BR2_GCC_TARGET_SIMD
default "lasx" if BR2_LOONGARCH_SIMD_LASX
default "lsx" if BR2_LOONGARCH_SIMD_LSX
default "none" if BR2_LOONGARCH_FPU_NONE
config BR2_GCC_TARGET_ABI
default "lp64d" if BR2_LOONGARCH_ABI_LP64D
default "lp64f" if BR2_LOONGARCH_ABI_LP64F
default "lp64s" if BR2_LOONGARCH_ABI_LP64S
config BR2_READELF_ARCH_NAME
default "LoongArch"
# vim: ft=kconfig
# -*- mode:kconfig; -*-

View File

@@ -1,6 +1,9 @@
config BR2_ARCH
default "m68k" if BR2_m68k
config BR2_NORMALIZED_ARCH
default "m68k"
config BR2_ENDIAN
default "BIG"
@@ -20,10 +23,15 @@ choice
help
Specific CPU variant to use
config BR2_m68k_68030
bool "68030"
select BR2_m68k_m68k
select BR2_USE_MMU
config BR2_m68k_68040
bool "68040"
select BR2_m68k_m68k
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
config BR2_m68k_cf5208
bool "5208"
@@ -33,6 +41,7 @@ config BR2_m68k_cf5208
endchoice
config BR2_GCC_TARGET_CPU
default "68030" if BR2_m68k_68030
default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208

View File

@@ -2,6 +2,9 @@ config BR2_ARCH
default "microblazeel" if BR2_microblazeel
default "microblaze" if BR2_microblazebe
config BR2_NORMALIZED_ARCH
default "microblaze"
config BR2_ENDIAN
default "LITTLE" if BR2_microblazeel
default "BIG" if BR2_microblazebe

View File

@@ -40,8 +40,8 @@ choice
help
Specific CPU variant to use
64bit capable: 64, 64r2, 64r3, 64r5, 64r6
non-64bit capable: 32, 32r2, 32r3, 32r5, 32r6
64bit capable: mips4, 64, 64r2, 64r3, 64r5, 64r6
non-64bit capable: mips4, 32, 32r2, 32r3, 32r5, 32r6
config BR2_mips_32
bool "Generic MIPS32"
@@ -97,6 +97,8 @@ config BR2_mips_xburst
to be used in order to prevent emitting these instructions.
See http://www.ingenic.com/en/?xburst.html
config BR2_mips4
bool "MIPS IV"
config BR2_mips_64
bool "Generic MIPS64"
depends on BR2_ARCH_IS_64
@@ -235,6 +237,9 @@ config BR2_ARCH
default "mips64" if BR2_mips64
default "mips64el" if BR2_mips64el
config BR2_NORMALIZED_ARCH
default "mips"
config BR2_ENDIAN
default "LITTLE" if BR2_mipsel || BR2_mips64el
default "BIG" if BR2_mips || BR2_mips64
@@ -259,6 +264,7 @@ config BR2_GCC_TARGET_ARCH
default "octeon2" if BR2_mips_octeon2
default "octeon3" if BR2_mips_octeon3
default "p6600" if BR2_mips_p6600
default "mips4" if BR2_mips4
config BR2_MIPS_OABI32
bool

View File

@@ -1,14 +0,0 @@
config BR2_ARCH
default "nds32le"
config BR2_GCC_TARGET_ARCH
default "v3"
config BR2_ENDIAN
default "LITTLE"
config BR2_READELF_ARCH_NAME
default "Andes Technology compact code size embedded RISC processor family"
# vim: ft=kconfig
# -*- mode:kconfig; -*-

View File

@@ -1,6 +1,9 @@
config BR2_ARCH
default "nios2"
config BR2_NORMALIZED_ARCH
default "nios2"
config BR2_ENDIAN
default "LITTLE"

View File

@@ -1,6 +1,9 @@
config BR2_ARCH
default "or1k"
config BR2_NORMALIZED_ARCH
default "openrisc"
config BR2_ENDIAN
default "BIG"

View File

@@ -1,6 +1,10 @@
config BR2_POWERPC_CPU_HAS_ALTIVEC
bool
config BR2_POWERPC_CPU_HAS_VSX
bool
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_POWERPC_CPU_HAS_SPE
bool
@@ -11,136 +15,135 @@ choice
Specific CPU variant to use
config BR2_generic_powerpc
bool "generic"
# No C library supports this variant on ppc64le
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_401
bool "401"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_403
bool "403"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_405
bool "405"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_405fp
bool "405 with FPU"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_440
bool "440"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_440fp
bool "440 with FPU"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_464
bool "464"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_464fp
bool "464 with FPU"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_476
bool "476"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_476fp
bool "476 with FPU"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_505
bool "505"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_602
bool "602"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_603
bool "603"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_603e
bool "603e"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_604
bool "604"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_604e
bool "604e"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_620
bool "620"
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_630
bool "630"
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_740
bool "740"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_7400
bool "7400"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_7450
bool "7450"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_750
bool "750"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_821
bool "821"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_823
bool "823"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_860
bool "860"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_970
bool "970"
depends on BR2_powerpc || BR2_powerpc64
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_8540
bool "8540 / e500v1"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
select BR2_POWERPC_CPU_HAS_SPE
config BR2_powerpc_8548
bool "8548 / e500v2"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
select BR2_POWERPC_CPU_HAS_SPE
config BR2_powerpc_e300c2
bool "e300c2"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_e300c3
bool "e300c3"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_e500mc
bool "e500mc"
depends on !BR2_ARCH_IS_64
depends on BR2_powerpc
config BR2_powerpc_e5500
bool "e5500"
depends on !BR2_powerpc64le
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_e6500
bool "e6500"
depends on !BR2_powerpc64le
depends on BR2_powerpc || BR2_powerpc64
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_power4
bool "power4"
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_power5
bool "power5"
depends on BR2_powerpc || BR2_powerpc64
config BR2_powerpc_power6
bool "power6"
depends on BR2_powerpc || BR2_powerpc64
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_power7
bool "power7"
select BR2_POWERPC_CPU_HAS_ALTIVEC
depends on BR2_powerpc || BR2_powerpc64
select BR2_POWERPC_CPU_HAS_VSX
config BR2_powerpc_power8
bool "power8"
select BR2_POWERPC_CPU_HAS_VSX
config BR2_powerpc_power9
bool "power9"
select BR2_POWERPC_CPU_HAS_ALTIVEC
endchoice
choice
prompt "Target ABI"
default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
default BR2_powerpc_CLASSIC
help
Application Binary Interface to use
config BR2_powerpc_CLASSIC
bool "Classic"
depends on !BR2_POWERPC_CPU_HAS_SPE
config BR2_powerpc_SPE
bool "SPE"
depends on BR2_POWERPC_CPU_HAS_SPE
select BR2_POWERPC_CPU_HAS_VSX
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
endchoice
config BR2_POWERPC_SOFT_FLOAT
@@ -157,6 +160,9 @@ config BR2_ARCH
default "powerpc64" if BR2_powerpc64
default "powerpc64le" if BR2_powerpc64le
config BR2_NORMALIZED_ARCH
default "powerpc"
config BR2_ENDIAN
default "BIG" if BR2_powerpc || BR2_powerpc64
default "LITTLE" if BR2_powerpc64le
@@ -200,6 +206,7 @@ config BR2_GCC_TARGET_CPU
default "power6" if BR2_powerpc_power6
default "power7" if BR2_powerpc_power7
default "power8" if BR2_powerpc_power8
default "power9" if BR2_powerpc_power9
config BR2_READELF_ARCH_NAME
default "PowerPC" if BR2_powerpc

View File

@@ -1,23 +1,5 @@
# RISC-V CPU ISA extensions.
config BR2_RISCV_ISA_RVI
bool
config BR2_RISCV_ISA_RVM
bool
config BR2_RISCV_ISA_RVA
bool
config BR2_RISCV_ISA_RVF
bool
config BR2_RISCV_ISA_RVD
bool
config BR2_RISCV_ISA_RVC
bool
choice
prompt "Target Architecture Variant"
default BR2_riscv_g
@@ -35,35 +17,33 @@ config BR2_riscv_g
config BR2_riscv_custom
bool "Custom architecture"
select BR2_RISCV_ISA_RVI
select BR2_RISCV_ISA_CUSTOM_RVA
endchoice
if BR2_riscv_custom
comment "Instruction Set Extensions"
config BR2_RISCV_ISA_CUSTOM_RVM
config BR2_RISCV_ISA_RVI
bool "Base Integer (I)"
config BR2_RISCV_ISA_RVM
bool "Integer Multiplication and Division (M)"
select BR2_RISCV_ISA_RVM
config BR2_RISCV_ISA_CUSTOM_RVA
config BR2_RISCV_ISA_RVA
bool "Atomic Instructions (A)"
select BR2_RISCV_ISA_RVA
config BR2_RISCV_ISA_CUSTOM_RVF
config BR2_RISCV_ISA_RVF
bool "Single-precision Floating-point (F)"
select BR2_RISCV_ISA_RVF
config BR2_RISCV_ISA_CUSTOM_RVD
config BR2_RISCV_ISA_RVD
bool "Double-precision Floating-point (D)"
depends on BR2_RISCV_ISA_RVF
select BR2_RISCV_ISA_RVD
config BR2_RISCV_ISA_CUSTOM_RVC
config BR2_RISCV_ISA_RVC
bool "Compressed Instructions (C)"
select BR2_RISCV_ISA_RVC
endif
config BR2_RISCV_ISA_RVV
bool "Vector Instructions (V)"
select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
choice
prompt "Target Architecture Size"
@@ -78,6 +58,14 @@ config BR2_RISCV_64
endchoice
config BR2_RISCV_USE_MMU
bool "MMU support"
default y
select BR2_USE_MMU
help
Enable this option if your RISC-V core has a MMU (Memory
Management Unit).
choice
prompt "Target ABI"
default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD
@@ -106,6 +94,7 @@ config BR2_RISCV_ABI_LP64
config BR2_RISCV_ABI_LP64F
bool "lp64f"
depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
depends on BR2_USE_MMU
config BR2_RISCV_ABI_LP64D
bool "lp64d"
@@ -116,6 +105,9 @@ config BR2_ARCH
default "riscv32" if !BR2_ARCH_IS_64
default "riscv64" if BR2_ARCH_IS_64
config BR2_NORMALIZED_ARCH
default "riscv"
config BR2_ENDIAN
default "LITTLE"

View File

@@ -17,6 +17,9 @@ endchoice
config BR2_ARCH
default "s390x" if BR2_s390x
config BR2_NORMALIZED_ARCH
default "s390"
config BR2_ENDIAN
default "BIG"

View File

@@ -5,8 +5,6 @@ choice
help
Specific CPU variant to use
config BR2_sh2a
bool "sh2a (SH2A big endian)"
config BR2_sh4
bool "sh4 (SH4 little endian)"
config BR2_sh4eb
@@ -18,15 +16,17 @@ config BR2_sh4aeb
endchoice
config BR2_ARCH
default "sh2a" if BR2_sh2a
default "sh4" if BR2_sh4
default "sh4eb" if BR2_sh4eb
default "sh4a" if BR2_sh4a
default "sh4aeb" if BR2_sh4aeb
config BR2_NORMALIZED_ARCH
default "sh"
config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
default "BIG" if BR2_sh4eb || BR2_sh4aeb
config BR2_READELF_ARCH_NAME
default "Renesas / SuperH SH"

View File

@@ -21,6 +21,10 @@ config BR2_ARCH
default "sparc" if BR2_sparc
default "sparc64" if BR2_sparc64
config BR2_NORMALIZED_ARCH
default "sparc" if BR2_sparc
default "sparc64" if BR2_sparc64
config BR2_ENDIAN
default "BIG"

View File

@@ -20,6 +20,19 @@ config BR2_X86_CPU_HAS_AVX
config BR2_X86_CPU_HAS_AVX2
bool
# BR2_X86_CPU_HAS_AVX512 implies the following AVX512 extensions:
# AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
# This subset is common to Intel Xeon (excl Xeon Phi), AMD Zen 4, and
# the x86-64-v4 psABI.
#
# Only select BR2_X86_CPU_HAS_AVX512 if the CPU supports this entire
# subset of extensions.
config BR2_X86_CPU_HAS_AVX512
bool
# This list of CPU architecture variant is (loosely) ordered according
# to the gcc documentation at
# https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/x86-Options.html
choice
prompt "Target Architecture Variant"
default BR2_x86_i586 if BR2_i386
@@ -59,6 +72,7 @@ config BR2_x86_pentium_m
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
config BR2_x86_pentium2
bool "pentium2"
depends on !BR2_x86_64
@@ -81,6 +95,78 @@ config BR2_x86_prescott
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
config BR2_x86_x86_64
bool "x86-64"
depends on BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
help
This option corresponds to -march=x86-64, documented as a
"Generic CPU with 64-bit extensions" by the GCC
documentation. It is a 64-bit CPU with MMX, SSE and SSE2
support.
config BR2_x86_x86_64_v2
bool "x86-64-v2"
depends on BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
help
This option corresponds to the x86-64-v2 micro-architecture
level, as defined by the x86-64 psABI document, see
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
It is close to the Nehalem CPU architecture, and is
applicable for CPUs that support CMPXCHG16B, LAHF-SAHF,
POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3.
config BR2_x86_x86_64_v3
bool "x86-64-v3"
depends on BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
help
This option corresponds to the x86-64-v3 micro-architecture
level, as defined by the x86-64 psABI document, see
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
It is close to the Haswell CPU architecture, and is
applicable for CPUs that support all of x86-64-v2 plus AVX,
AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE.
config BR2_x86_x86_64_v4
bool "x86-64-v4"
depends on BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
help
This option corresponds to the x86-64-v4 micro-architecture
level, as defined by the x86-64 psABI document, see
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
It is applicable for CPUs that support all of x86-64-v3 plus
AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL.
config BR2_x86_nocona
bool "nocona"
select BR2_X86_CPU_HAS_MMX
@@ -103,6 +189,19 @@ config BR2_x86_corei7
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
help
This option is deprecated. Since gcc 4.9, the gcc option
"nehalem" is preferred. Use BR2_x86_nehalem instead.
config BR2_x86_nehalem
bool "nehalem"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_westmere
bool "westmere"
select BR2_X86_CPU_HAS_MMX
@@ -112,6 +211,7 @@ config BR2_x86_westmere
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_corei7_avx
bool "corei7-avx"
select BR2_X86_CPU_HAS_MMX
@@ -122,6 +222,31 @@ config BR2_x86_corei7_avx
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
help
This option is deprecated. Since gcc 4.9, the gcc option
"sandybridge" is preferred. Use BR2_x86_sandybridge instead.
config BR2_x86_sandybridge
bool "sandybridge"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_ivybridge
bool "ivybridge"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_core_avx2
bool "core-avx2"
select BR2_X86_CPU_HAS_MMX
@@ -133,6 +258,45 @@ config BR2_x86_core_avx2
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
help
This option is deprecated. Since gcc 4.9, the gcc option
"haswell" is preferred. Use BR2_x86_haswell instead.
config BR2_x86_haswell
bool "haswell"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_broadwell
bool "broadwell"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_skylake
bool "skylake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_x86_atom
bool "atom"
select BR2_X86_CPU_HAS_MMX
@@ -140,6 +304,17 @@ config BR2_x86_atom
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
help
This option is deprecated. Since gcc 4.9, the gcc option
"bonnell" is preferred. Use BR2_x86_bonnell instead.
config BR2_x86_bonnell
bool "bonnell"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_silvermont
bool "silvermont"
select BR2_X86_CPU_HAS_MMX
@@ -149,6 +324,220 @@ config BR2_x86_silvermont
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_goldmont
bool "goldmont"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_goldmont_plus
bool "goldmont-plus"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_tremont
bool "tremont"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_sierraforest
bool "sierraforest"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_x86_grandridge
bool "grandridge"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_x86_skylake_avx512
bool "skylake-avx512"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_x86_cannonlake
bool "cannonlake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_x86_icelake_client
bool "icelake-client"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_x86_icelake_server
bool "icelake-server"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
config BR2_x86_cascadelake
bool "cascadelake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_cooperlake
bool "cooperlake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
config BR2_x86_tigerlake
bool "tigerlake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_sapphirerapids
bool "sapphirerapids"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
help
Use for Sapphire Rapids, Emerald Rapids
config BR2_x86_alderlake
bool "alderlake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
help
Use for Alder Lake, Raptor Lake, Meteor Lake
config BR2_x86_rocketlake
bool "rocketlake"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
config BR2_x86_graniterapids
bool "graniterapids"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_x86_graniterapids_d
bool "graniterapids-d"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_x86_k6
bool "k6"
depends on !BR2_x86_64
@@ -186,6 +575,13 @@ config BR2_x86_barcelona
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
config BR2_x86_bobcat
bool "bobcat"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
config BR2_x86_jaguar
bool "jaguar"
select BR2_X86_CPU_HAS_MMX
@@ -195,6 +591,25 @@ config BR2_x86_jaguar
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
config BR2_x86_bulldozer
bool "bulldozer"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
config BR2_x86_piledriver
bool "piledriver"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
config BR2_x86_steamroller
bool "steamroller"
select BR2_X86_CPU_HAS_MMX
@@ -204,12 +619,73 @@ config BR2_x86_steamroller
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
config BR2_x86_excavator
bool "excavator"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_x86_zen
bool "zen"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_x86_zen2
bool "zen 2"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
config BR2_x86_zen3
bool "zen 3"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
config BR2_x86_zen4
bool "zen 4"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
select BR2_X86_CPU_HAS_AVX
select BR2_X86_CPU_HAS_AVX2
select BR2_X86_CPU_HAS_AVX512
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
config BR2_x86_geode
bool "geode"
# Don't include MMX support because there several variant of geode
# processor, some with MMX support, some without.
# See: http://en.wikipedia.org/wiki/Geode_%28processor%29
bool "AMD Geode"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_3DNOW
config BR2_x86_c3
bool "Via/Cyrix C3 (Samuel/Ezra cores)"
depends on !BR2_x86_64
@@ -240,30 +716,16 @@ config BR2_ARCH
default "i686" if BR2_x86_c32
default "i586" if BR2_x86_winchip_c6
default "i586" if BR2_x86_winchip2
default "i686" if BR2_x86_i686
default "i686" if BR2_x86_pentium2
default "i686" if BR2_x86_pentium3
default "i686" if BR2_x86_pentium4
default "i686" if BR2_x86_pentium_m
default "i686" if BR2_x86_pentiumpro
default "i686" if BR2_x86_prescott
default "i686" if BR2_x86_nocona && BR2_i386
default "i686" if BR2_x86_core2 && BR2_i386
default "i686" if BR2_x86_corei7 && BR2_i386
default "i686" if BR2_x86_westmere && BR2_i386
default "i686" if BR2_x86_corei7_avx && BR2_i386
default "i686" if BR2_x86_core_avx2 && BR2_i386
default "i686" if BR2_x86_atom && BR2_i386
default "i686" if BR2_x86_silvermont && BR2_i386
default "i686" if BR2_x86_opteron && BR2_i386
default "i686" if BR2_x86_opteron_sse3 && BR2_i386
default "i686" if BR2_x86_barcelona && BR2_i386
default "i686" if BR2_x86_jaguar && BR2_i386
default "i686" if BR2_x86_steamroller && BR2_i386
default "i686" if BR2_x86_k6
default "i686" if BR2_x86_k6_2
default "i686" if BR2_x86_athlon
default "i686" if BR2_x86_athlon_4
# We use the property of Kconfig that the first match of a
# list of default will be chosen. So the following entry will
# not match for all BR2_i386=y configurations, but only the
# ones that didn't match any of the previous cases (i486,
# i586).
default "i686" if BR2_i386
default "x86_64" if BR2_x86_64
config BR2_NORMALIZED_ARCH
default "i386" if !BR2_x86_64
default "x86_64" if BR2_x86_64
config BR2_ENDIAN
@@ -281,19 +743,55 @@ config BR2_GCC_TARGET_ARCH
default "pentium3" if BR2_x86_pentium3
default "pentium4" if BR2_x86_pentium4
default "prescott" if BR2_x86_prescott
default "x86-64" if BR2_x86_x86_64
default "x86-64-v2" if BR2_x86_x86_64_v2
default "x86-64-v3" if BR2_x86_x86_64_v3
default "x86-64-v4" if BR2_x86_x86_64_v4
default "nocona" if BR2_x86_nocona
default "core2" if BR2_x86_core2
default "corei7" if BR2_x86_corei7
default "nehalem" if BR2_x86_nehalem
default "corei7-avx" if BR2_x86_corei7_avx
default "sandybridge" if BR2_x86_sandybridge
default "ivybridge" if BR2_x86_ivybridge
default "core-avx2" if BR2_x86_core_avx2
default "haswell" if BR2_x86_haswell
default "broadwell" if BR2_x86_broadwell
default "skylake" if BR2_x86_skylake
default "atom" if BR2_x86_atom
default "bonnell" if BR2_x86_bonnell
default "westmere" if BR2_x86_westmere
default "silvermont" if BR2_x86_silvermont
default "goldmont" if BR2_x86_goldmont
default "goldmont-plus" if BR2_x86_goldmont_plus
default "tremont" if BR2_x86_tremont
default "sierraforest" if BR2_x86_sierraforest
default "grandridge" if BR2_x86_grandridge
default "skylake-avx512" if BR2_x86_skylake_avx512
default "cannonlake" if BR2_x86_cannonlake
default "icelake-client" if BR2_x86_icelake_client
default "icelake-server" if BR2_x86_icelake_server
default "cascadelake" if BR2_x86_cascadelake
default "cooperlake" if BR2_x86_cooperlake
default "tigerlake" if BR2_x86_tigerlake
default "sapphirerapids" if BR2_x86_sapphirerapids
default "alderlake" if BR2_x86_alderlake
default "rocketlake" if BR2_x86_rocketlake
default "graniterapids" if BR2_x86_graniterapids
default "graniterapids-d" if BR2_x86_graniterapids_d
default "k8" if BR2_x86_opteron
default "k8-sse3" if BR2_x86_opteron_sse3
default "barcelona" if BR2_x86_barcelona
default "btver1" if BR2_x86_bobcat
default "btver2" if BR2_x86_jaguar
default "bdver1" if BR2_x86_bulldozer
default "bdver2" if BR2_x86_piledriver
default "bdver3" if BR2_x86_steamroller
default "bdver4" if BR2_x86_excavator
default "znver1" if BR2_x86_zen
default "znver2" if BR2_x86_zen2
default "znver3" if BR2_x86_zen3
default "znver4" if BR2_x86_zen4
default "k6" if BR2_x86_k6
default "k6-2" if BR2_x86_k6_2
default "athlon" if BR2_x86_athlon

View File

@@ -5,11 +5,10 @@ choice
config BR2_XTENSA_CUSTOM
bool "Custom Xtensa processor configuration"
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_xtensa_fsf
bool "fsf - Default configuration"
select BR2_ARCH_HAS_MMU_MANDATORY
select BR2_USE_MMU
endchoice
@@ -41,6 +40,15 @@ config BR2_XTENSA_BIG_ENDIAN
endchoice
config BR2_XTENSA_USE_MMU
bool "MMU support"
default y
depends on BR2_XTENSA_CUSTOM
select BR2_USE_MMU
help
Enable this option if your Xtensa core has a MMU (Memory
Management Unit).
config BR2_ENDIAN
default "LITTLE" if BR2_XTENSA_LITTLE_ENDIAN
default "BIG" if BR2_xtensa_fsf || BR2_XTENSA_BIG_ENDIAN
@@ -48,6 +56,9 @@ config BR2_ENDIAN
config BR2_ARCH
default "xtensa" if BR2_xtensa
config BR2_NORMALIZED_ARCH
default "xtensa"
config BR2_READELF_ARCH_NAME
default "Tensilica Xtensa Processor"

View File

@@ -16,7 +16,19 @@ GCC_TARGET_FP32_MODE := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE))
GCC_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU))
GCC_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU))
GCC_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
GCC_TARGET_SIMD := $(call qstrip,$(BR2_GCC_TARGET_SIMD))
GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE))
# Explicitly set LD's "max-page-size" instead of relying on some defaults
ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192
else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384
else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536
endif
# Include any architecture specific makefiles.
-include $(sort $(wildcard arch/arch.mk.*))

View File

@@ -2,16 +2,7 @@ ifeq ($(BR2_arc),y)
# -matomic is always required when the ARC core has the atomic extensions
ifeq ($(BR2_ARC_ATOMIC_EXT),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS = -matomic
endif
# Explicitly set LD's "max-page-size" instead of relying on some defaults
ifeq ($(BR2_ARC_PAGE_SIZE_4K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096
else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192
else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384
ARCH_TOOLCHAIN_WRAPPER_OPTS += -matomic
endif
endif

View File

@@ -1,26 +0,0 @@
#
# Configure the GCC_TARGET_ARCH variable and append the
# appropriate C-SKY ISA extensions.
#
ifeq ($(BR2_csky),y)
ifeq ($(BR2_ck610),y)
GCC_TARGET_CPU := ck610
else ifeq ($(BR2_ck807),y)
GCC_TARGET_CPU := ck807
else ifeq ($(BR2_ck810),y)
GCC_TARGET_CPU := ck810
else ifeq ($(BR2_ck860),y)
GCC_TARGET_CPU := ck860
endif
ifeq ($(BR2_CSKY_FPU),y)
GCC_TARGET_CPU := $(GCC_TARGET_CPU)f
endif
ifeq ($(BR2_CSKY_VDSP),y)
GCC_TARGET_CPU := $(GCC_TARGET_CPU)v
endif
endif

View File

@@ -26,5 +26,17 @@ endif
ifeq ($(BR2_RISCV_ISA_RVC),y)
GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)c
endif
ifeq ($(BR2_RISCV_ISA_RVV),y)
GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)v
endif
# Starting from gcc 12.x, csr and fence instructions have been
# separated from the base I instruction set, and special -march
# suffixes are needed to enable their support. In Buildroot, we assume
# all RISC-V cores that support Linux implement those instructions, so
# we unconditionally enable those extensions.
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_12),y)
GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)_zicsr_zifencei
endif
endif

View File

@@ -1,3 +1,9 @@
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
ifeq ($(BR_BUILDING)$(BR2_XTENSA_CUSTOM)$(BR2_TOOLCHAIN_BUILDROOT):$(BR_ARCH_XTENSA_OVERLAY_FILE),yyy:)
$(error No xtensa overlay file provided. Check your BR2_XTENSA_OVERLAY_FILE setting)
endif
################################################################################
# This variable can be used by packages that need to extract the overlay.
#
@@ -9,7 +15,6 @@
# tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc
# endif
################################################################################
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),)
ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE)
ARCH_XTENSA_OVERLAY_FILE = $($(PKG)_DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE))

View File

@@ -1,32 +1,30 @@
image efi-part.vfat {
vfat {
file startup.nsh {
image = "efi-part/startup.nsh"
}
file EFI {
image = "efi-part/EFI"
}
file Image {
image = "Image"
}
}
size = 32M
vfat {
file EFI {
image = "efi-part/EFI"
}
file Image {
image = "Image"
}
}
size = 64M
}
image disk.img {
hdimage {
gpt = true
}
hdimage {
partition-table-type = "gpt"
}
partition boot {
image = "efi-part.vfat"
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
offset = 32768
bootable = true
}
partition boot {
image = "efi-part.vfat"
partition-type-uuid = U
offset = 32K
bootable = true
}
partition root {
partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae
image = "rootfs.ext2"
}
partition root {
partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# From https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
sha256 62148e7e17f54c4a5ab5e75ad4882682c54bee818948be61a5963234fc0849fc linux-6.11.11.tar.xz

View File

@@ -1,5 +1,5 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
BOARD_DIR=$(dirname "$0")
cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
cp -f "${BOARD_DIR}/grub.cfg" "${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg"

View File

@@ -45,7 +45,7 @@ the instructions in [3], with qemu_arm64_defconfig.
This should give you a nor_flash.bin, which you can use with qemu as an
alternative to QEMU_EFI.fd. You will also need to change the machine
specification to "-M virt,secure" on qemu command line, to enable TrustZone
specification to "-M virt,secure=on" on qemu command line, to enable TrustZone
support, and you will need to increase the memory with "-m 1024".
[1]: https://github.com/ARM-software/ebbr

View File

@@ -4,12 +4,12 @@
* Copyright (C) 2014 Atmel,
* 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
*
* 2020 Sergio Tanzilli <tanzilli@acmesystems.it>
* 2022 Sergio Tanzilli <tanzilli@acmesystems.it>
*
* Licensed under GPLv2 or later.
*/
/dts-v1/;
#include "sama5d31.dtsi"
#include "microchip/sama5d31.dtsi"
/ {
model = "Acme Systems Acqua SOM";
@@ -17,7 +17,7 @@
chosen {
stdout-path = "serial0:115200n8";
bootargs = "mem=256M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait consoleblank=0";
bootargs = "mem=256M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait net.ifnames=0";
};
memory {
@@ -128,15 +128,19 @@
i2c3@ {
compatible = "i2c-gpio";
gpios = <&pioE 1 0 /* SDA */
&pioE 2 0 /* SCK */
>;
i2c-gpio,delay-us = <4>; /* ~178 kHz */
sda-gpios = <&pioE 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
scl-gpios = <&pioE 2 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_gpio>;
i2c-gpio,delay-us = <4>; /* ~178 kHz */
#address-cells = <1>;
#size-cells = <0>;
/* EEPROM contains the eth0 MAC address */
eeprom@58 {
compatible = "atmel,24mac402";
pagesize = <256>;
@@ -145,10 +149,17 @@
#address-cells = <1>;
#size-cells = <1>;
eth0_addr: eth-mac-addr@9A {
reg = <0x0 0x06>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eth0_addr: eth-mac-addr@9A {
reg = <0x0 0x06>;
};
};
};
};
pwm0: pwm@f002c000 {
@@ -204,6 +215,17 @@
};
pinctrl@fffff200 {
atmel,mux-mask = <
/* A B C */
0xffffffff 0xc0fc0000 0xc0ff0000 /* pioA */
0xffffffff 0x0ff8ffff 0x00000000 /* pioB */
0xffffffff 0xbc00f1ff 0x7c00fc00 /* pioC */
0xffffffff 0xc001c0e0 0x0001c1e0 /* pioD */
0xfffffff9 0xbf9f8000 0x18000000 /* pioE */
/* 0xffffffff 0xb8000000 0x18000000 */ /* pioE */
>;
board {
pinctrl_i2c0_pu: i2c0_pu {
atmel,pins =
@@ -217,6 +239,13 @@
<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
};
pinctrl_i2c3_gpio: i2c3-gpio {
atmel,pins =
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
pinctrl_key_gpio: key_gpio_0 {
atmel,pins =
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -236,12 +265,20 @@
atmel,pins =
<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
};
pinctrl_gpio_leds: gpio_leds_default {
atmel,pins =
<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
};
};
};
usb0: gadget@500000 {
status = "okay";
status = "disabled";
};
usb1: ohci@600000 {
@@ -272,6 +309,8 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;
led0 {
label = "led0";

View File

@@ -0,0 +1,340 @@
/*
* acme-acqua.dts - Device Tree file for Acqua A5 Board
*
* Copyright (C) 2014 Atmel,
* 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
*
* 2022 Sergio Tanzilli <tanzilli@acmesystems.it>
*
* Licensed under GPLv2 or later.
*/
/dts-v1/;
#include "sama5d31.dtsi"
/ {
model = "Acme Systems Acqua SOM";
compatible = "acme,acqua", "atmel,sama5d3", "atmel,sama5";
chosen {
stdout-path = "serial0:115200n8";
bootargs = "mem=256M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait net.ifnames=0";
};
memory {
reg = <0x20000000 0x10000000>;
};
clocks {
slow_xtal {
clock-frequency = <32768>;
};
main_xtal {
clock-frequency = <12000000>;
};
};
ahb {
apb {
hlcdc: hlcdc@f0030000 {
status = "disabled";
hlcdc-display-controller {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888_alt>;
port@0 {
hlcdc_panel_output: endpoint@0 {
remote-endpoint = <&panel_input>;
};
};
};
};
/* MicroSD mounted on the SOM */
mmc0: mmc@f0000000 {
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
status = "okay";
slot@0 {
reg = <0>;
bus-width = <4>;
};
};
/* Optional MicroSD to mount on the carrier board */
mmc1: mmc@f8000000 {
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
status = "disabled";
slot@0 {
reg = <0>;
bus-width = <4>;
cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>;
};
};
spi0: spi@f0004000 {
cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
status = "disabled";
};
can0: can@f000c000 {
status = "disabled";
};
tcb0: timer@f0010000 {
timer0: timer@0 {
compatible = "atmel,tcb-timer";
reg = <0>;
};
timer1: timer@1 {
compatible = "atmel,tcb-timer";
reg = <1>;
};
};
i2c0: i2c@f0014000 {
pinctrl-0 = <&pinctrl_i2c0_pu>;
status = "disabled";
};
i2c1: i2c@f0018000 {
status = "disabled";
};
macb1: ethernet@f802c000 {
compatible = "atmel,sama5d3-macb", "cdns,at91sam9260-macb", "cdns,macb";
status = "okay";
phy-mode = "rmii";
#address-cells = <1>;
#size-cells = <0>;
nvmem-cells = <&eth0_addr>;
nvmem-cell-names = "mac-address";
phy0: ethernet-phy@1 {
interrupt-parent = <&pioE>;
interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
reg = <1>;
};
/*ethernet-phy@1 {
reg = <0x1>;
};*/
};
/* Bit banging internal I2C to manage the AT24MAC402 chip */
i2c3@ {
compatible = "i2c-gpio";
sda-gpios = <&pioE 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
scl-gpios = <&pioE 2 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_gpio>;
i2c-gpio,delay-us = <4>; /* ~178 kHz */
#address-cells = <1>;
#size-cells = <0>;
/* EEPROM contains the eth0 MAC address */
eeprom@58 {
compatible = "atmel,24mac402";
pagesize = <256>;
read-only;
reg = <0x58>;
#address-cells = <1>;
#size-cells = <1>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eth0_addr: eth-mac-addr@9A {
reg = <0x0 0x06>;
};
};
};
};
pwm0: pwm@f002c000 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
status = "disabled";
};
usart0: serial@f001c000 {
status = "okay";
};
usart1: serial@f0020000 {
pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
status = "disabled";
};
uart0: serial@f0024000 {
status = "disabled";
};
spi1: spi@f8008000 {
cs-gpios = <&pioC 25 0>;
status = "disabled";
};
adc0: adc@f8018000 {
atmel,adc-vref = <3300>;
atmel,adc-channels-used = <0xfe>;
pinctrl-0 = <
&pinctrl_adc0_adtrg
&pinctrl_adc0_ad1
&pinctrl_adc0_ad2
&pinctrl_adc0_ad3
&pinctrl_adc0_ad4
&pinctrl_adc0_ad5
&pinctrl_adc0_ad6
&pinctrl_adc0_ad7
>;
status = "disabled";
};
i2c2: i2c@f801c000 {
dmas = <0>, <0>; /* Do not use DMA for i2c2 */
pinctrl-0 = <&pinctrl_i2c2_pu>;
status = "disabled";
};
dbgu: serial@ffffee00 {
status = "okay";
};
pinctrl@fffff200 {
atmel,mux-mask = <
/* A B C */
0xffffffff 0xc0fc0000 0xc0ff0000 /* pioA */
0xffffffff 0x0ff8ffff 0x00000000 /* pioB */
0xffffffff 0xbc00f1ff 0x7c00fc00 /* pioC */
0xffffffff 0xc001c0e0 0x0001c1e0 /* pioD */
0xfffffff9 0xbf9f8000 0x18000000 /* pioE */
/* 0xffffffff 0xb8000000 0x18000000 */ /* pioE */
>;
board {
pinctrl_i2c0_pu: i2c0_pu {
atmel,pins =
<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
};
pinctrl_i2c2_pu: i2c2_pu {
atmel,pins =
<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
};
pinctrl_i2c3_gpio: i2c3-gpio {
atmel,pins =
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
pinctrl_key_gpio: key_gpio_0 {
atmel,pins =
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
};
pinctrl_mmc0_cd: mmc0_cd {
atmel,pins =
<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
};
pinctrl_mmc1_cd: mmc1_cd {
atmel,pins =
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
};
pinctrl_usba_vbus: usba_vbus {
atmel,pins =
<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
};
pinctrl_gpio_leds: gpio_leds_default {
atmel,pins =
<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
};
};
};
usb0: gadget@500000 {
status = "disabled";
};
usb1: ohci@600000 {
status = "okay";
};
usb2: ehci@700000 {
status = "okay";
};
};
panel: panel {
/* compatible = "acme,43inch", "simple-panel"; */
compatible = "acme,50inch", "simple-panel";
/* compatible = "acme,70inch", "simple-panel"; */
status = "disable";
port@0 {
panel_input: endpoint@0 {
remote-endpoint = <&hlcdc_panel_output>;
};
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;
led0 {
label = "led0";
gpios = <&pioE 3 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led1 {
label = "led1";
gpios = <&pioE 4 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led2 {
label = "led2";
gpios = <&pioE 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
led3 {
label = "led3";
gpios = <&pioE 6 GPIO_ACTIVE_LOW>;
linux,default-trigger = "mmc0";
default-state = "off";
};
};
};

View File

@@ -8,6 +8,7 @@ image boot.vfat {
"at91-sama5d3_acqua.dtb"
}
}
size = 16M
}

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 5ea2a8fed1ba0024229c6f6d77176679e1b24791bdbce8e285634013d4a93551 at91bootstrap3-v3.10.3-git4.tar.gz

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 6b19a3ae99423de2416964d67251d745910277af258b4c4c63e88fd87dbf0e27 linux-6.12.41.tar.xz

View File

@@ -14,6 +14,7 @@ image boot.vfat {
image = "at91sam9x5_aria-sdcardboot-linux-zimage-dt-3.10.3.bin"
}
}
size = 16M
}

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 5ea2a8fed1ba0024229c6f6d77176679e1b24791bdbce8e285634013d4a93551 at91bootstrap3-v3.10.3-git4.tar.gz

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 6c5e4d3c87feadbfdb9f7d2e46f3f120b00286ba380491c5956708e0b94232c8 linux-4.19.315.tar.xz

View File

@@ -5,15 +5,16 @@ image boot.vfat {
file zImage {
image = "zImage"
}
file acme-arietta.dtb {
image = "at91-ariettag25.dtb"
}
file boot.bin {
image = "at91sam9x5_arietta-sdcardboot-linux-zimage-dt-3.10.3.bin"
}
}
}
size = 16M
}

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 5ea2a8fed1ba0024229c6f6d77176679e1b24791bdbce8e285634013d4a93551 at91bootstrap3-v3.10.3-git4.tar.gz

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 6c5e4d3c87feadbfdb9f7d2e46f3f120b00286ba380491c5956708e0b94232c8 linux-4.19.315.tar.xz

View File

@@ -5,6 +5,7 @@ image boot.vfat {
"socfpga_cyclone5_socrates.dtb"
}
}
size = 8M
}
@@ -17,13 +18,13 @@ image uboot.img {
in-partition-table = "no"
image = "u-boot-spl.bin.crc"
offset = 0
size = 64k
size = 64K
}
partition uboot-full {
in-partition-table = "no"
image = "u-boot.img"
offset = 256k
offset = 256K
}
size = 1M
@@ -36,7 +37,7 @@ image sdcard.img {
partition uboot-env {
in-partition-table = "no"
image = "uboot-env.bin"
offset = 17408 # 512 * 34 -> just after gpt
offset = 17K # 512 * 34 -> just after gpt
}
partition boot {

View File

@@ -1,4 +0,0 @@
label linux-4.17.0-rc3
kernel /Image
devicetree /sun50i-a64-amarula-relic.dtb
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk1p4 rootwait

View File

@@ -1,10 +0,0 @@
image boot.vfat {
vfat {
files = {
"Image",
"sun50i-a64-amarula-relic.dtb",
"extlinux"
}
}
size = 64M
}

View File

@@ -1,4 +0,0 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf

View File

@@ -1,90 +0,0 @@
Amarula A64 Relic
================
Amarula A64-Relic is an Allwinner A64 based IoT device, which supports:
- Allwinner A64 Cortex-A53
- Mali-400MP2 GPU
- AXP803 PMIC
- 1GB DDR3 RAM
- 8GB eMMC
- AP6330 Wifi/BLE
- MIPI-DSI
- CSI: OV5640 sensor
- USB OTG
- 12V DC power supply
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Amarual+A64-Relic
Build
=====
$ make amarula_a64_relic_defconfig
$ make
build files at output/images/:
- sunxi-spl.bin
- u-boot.itb
- Image
- sun50i-a64-amarula-relic.dtb
- boot.vfat
- rootfs.ext4
Write eMMC
=========
The board comes with an operating system preloaded on the eMMC.
To replace it with the Buildroot-built system, take the following
steps
1. Connect the board UART with host and open minicom(ttyUSBx/115200N8)
2. Supply 12V DC for power-on the board.
3. Interrupt U-Boot by pressing enter
4. Create GPT partitions
=> mmc dev 1
=> gpt write mmc 1 $partitions
5. Connect the board USB-OTG with USB slot on the host.
6. Initiate fastboot
=> fastboot 0
7. Write images from host onto eMMC using fastboot
$ cd output/images
$ sudo fastboot -i 0x1f3a flash loader1 sunxi-spl.bin
$ sudo fastboot -i 0x1f3a flash loader2 u-boot.itb
$ sudo fastboot -i 0x1f3a flash esp boot.vfat
$ sudo fastboot -i 0x1f3a flash system rootfs.ext4
Update eMMC during Development
==============================
During development, reflashing the entire filesystem image at every
change is time consuming. A useful alternative is to directly access
over USB the filesystem stored on the eMMC, using the USB Mass Storage
capability of U-Boot. To achieve this:
1. Build U-Boot by enabling UMS
$ make uboot-menuconfig
(select CONFIG_CMD_USB_MASS_STORAGE=y)
2. Follow all 6 steps from 'Write eMMC' and mount eMMC on host
=> mmc dev 1
=> ums 0 mmc 1
WiFi
====
# wpa_passphrase ACCESSPOINTNAME >> /etc/wpa_supplicant.conf
(type password and enter)
# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
# udhcpc -i wlan0
# ping google.com
--
Jagan Teki <jagan@amarulasolutions.com>
29-Jun-2018

View File

@@ -1,83 +0,0 @@
#AP6330_NVRAM_V1.0_20121130
#Sample variables file for BCM94330 SD FC AGB board
manfid=0x2d0
prodid=0x0547
vendid=0x14e4
devid=0x4360
boardtype=0x05e1
boardrev=0x1202
boardflags=0x0080200
nocrc=1
xtalfreq=26000
boardnum=22
macaddr=00:90:4c:c5:12:38
ag0=254
aa2g=1
ccode=ALL
pa0itssit=0x20
pa0b0=5587
pa0b1=-633
pa0b2=-158
rssismf2g=0xa
rssismc2g=0x3
rssisav2g=0x7
#rssi params for 5GHz
rssismf5g=0x4
rssismc5g=0x3
rssisav5g=0x7
#PA parameters for lower a-band
pa1lob0=4748
pa1lob1=-566
pa1lob2=-180
#PA parameters for midband
pa1b0=4762
pa1b1=-593
pa1b2=-172
#PA parameters for high band
#pa1hib0=4596
pa1hib0=4666
pa1hib1=-619
pa1hib2=-163
rxpo5g=0
maxp2ga0=74
maxp5ga0=66
maxp5gla0=66
maxp5gha0=66
# 2.4G Tx Power offsets
cck2gpo=0x2222
ofdm2gpo=0x44444444
mcs2gpo0=0x6666
mcs2gpo1=0x6666
# 5G Tx Power offsets
ofdm5gpo=0x44444444
ofdm5glpo=0x44444444
ofdm5ghpo=0x44444444
mcs5gpo0=0x6666
mcs5gpo1=0x6666
mcs5glpo0=0x6666
mcs5glpo1=0x6666
mcs5ghpo0=0x6666
mcs5ghpo1=0x6666
sromrev=3
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
cckPwrOffset=4
swctrlmap_2g=0x44844484,0x42824282,0x40804484,0x18282,0x1ff
triso5g=0
swctrlmap_5g=0x00100010,0x20202020,0x20202020,0x14202,0x0f0
rfreg033=0x19
rfreg033_cck=0x1f
dacrate2g=160
dacrate5g=160
txalpfbyp2g=1
bphyscale=17
cckPwrIdxCorr=-15
pacalidx2g=50
#pacalidx5g=20
noise_cal_ref_2g=53
noise_cal_po_2g=0
noise_cal_ref_5g=52
noise_cal_po_5g=5,0,0
# 4330 OOB parameter: High level trigger
muxenab=0x10

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 880ace63ca2291b8b639e9bd862cc828649d3e1e00ccfee5861473debd2e4dec linux-6.1.91.tar.xz

View File

@@ -1,35 +0,0 @@
From 8ee2b03039cccf64402a72dea2185d7fe1972729 Mon Sep 17 00:00:00 2001
From: Shyam Saini <shyam.saini@amarulasolutions.com>
Date: Mon, 15 Apr 2019 16:16:16 +0530
Subject: [PATCH] include: configs: Increase CONFIG_SYS_BOOTM_LEN to 16MB
The default value of CONFIG_SYS_BOOTM_LEN is 0x800000 i.e, 8MB which
causes board reset because of larger uImage size.
Error log snippet:
Booting using the fdt blob at 0x1f00000
Loading Kernel Image ... Image too large: increase CONFIG_SYS_BOOTM_LEN
Must RESET board to recover
resetting ...
Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
---
include/configs/rk3288_common.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
index 72a54bc0ab..eab7cf4d86 100644
--- a/include/configs/rk3288_common.h
+++ b/include/configs/rk3288_common.h
@@ -9,6 +9,8 @@
#include <asm/arch/hardware.h>
#include "rockchip-common.h"
+#define CONFIG_SYS_BOOTM_LEN (16 << 20) /* 16MB */
+
#define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
#define CONFIG_SYS_MALLOC_LEN (32 << 20)
#define CONFIG_SYS_CBSIZE 1024
--
2.11.0

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 50b4482a505bc281ba8470c399a3c26e145e29b23500bc35c50debd7fa46bdf8 u-boot-2022.10.tar.bz2

View File

@@ -0,0 +1,26 @@
image boot.vfat {
vfat {
files = {
"u-boot-spl.bin",
"u-boot.itb",
"ae350_ax45mp.dtb",
}
}
size = 2M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0xC
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
bootable = true
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 c71af3d2c86c0a0deca4f54b51d1c35217082b030052cc3513dc42e852652733 linux-v6.0.y-andes.tar.gz

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 d11702103f177a2914e94eec57ce5ed820296d874f6b6525c4482e55d71a3667 opensbi-1.6.tar.gz

View File

@@ -0,0 +1,38 @@
From 16aad5594e08550295ea3c12c1c9ed6f64774748 Mon Sep 17 00:00:00 2001
From: Rick Chen <rick@andestech.com>
Date: Tue, 29 Mar 2022 13:41:10 +0800
Subject: [PATCH] mmc: ftsdc010_mci: Support DTS of ftsdc010 driver for
generic dma
The ftsdc010 driver has been implemented for generic dma in Linux
kernel. And its compatible is andestech,atfsdc010g to distinguish
the legacy andestech,atfsdc010 which is not for generic dma.
Althought the ftsdc010_mci driver in U-Boot does not use dma, but
it still can work well with the mmc node for generic dma. So add
the compatible string to support it.
Signed-off-by: Rick Chen <rick@andestech.com>
Upstream-Status: Pending
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
---
drivers/mmc/ftsdc010_mci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
index 570d54cf9d..65b1d447a8 100644
--- a/drivers/mmc/ftsdc010_mci.c
+++ b/drivers/mmc/ftsdc010_mci.c
@@ -460,6 +460,7 @@ int ftsdc010_mmc_bind(struct udevice *dev)
static const struct udevice_id ftsdc010_mmc_ids[] = {
{ .compatible = "andestech,atfsdc010" },
+ { .compatible = "andestech,atfsdc010g" },
{ }
};
--
2.34.1

View File

@@ -0,0 +1,42 @@
From 933ad8a59f7fd9b2088badc3e97167d750a40b5a Mon Sep 17 00:00:00 2001
From: Bin Meng <bmeng.cn@gmail.com>
Date: Mon, 12 Jul 2021 11:52:31 +0800
Subject: [PATCH] spl: Align device tree blob address at 8-byte boundary
Since libfdt v1.6.1, a new requirement on the device tree address via:
commit 5e735860c478 ("libfdt: Check for 8-byte address alignment in fdt_ro_probe_()")
must be met that the device tree must be loaded in to memory at an
8-byte aligned address.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
This patch was imported from U-boot patchwork:
https://patchwork.ozlabs.org/project/uboot/patch/20210712035231.26475-1-bmeng.cn@gmail.com/
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
---
common/spl/spl_fit.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index a35be529..a76ad14a 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -382,6 +382,12 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
*/
image_info.load_addr = spl_image->load_addr + spl_image->size;
+ /*
+ * Since libfdt v1.6.1, the device tree must be loaded in to memory
+ * at an 8-byte aligned address.
+ */
+ image_info.load_addr = roundup(image_info.load_addr, 8);
+
/* Figure out which device tree the board wants to use */
node = spl_fit_get_image_node(ctx, FIT_FDT_PROP, index++);
if (node < 0) {
--
2.34.1

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 0f933f6c5a426895bf306e93e6ac53c60870e4b54cda56d95211bec99e63bec7 u-boot-2025.07.tar.bz2

View File

@@ -0,0 +1,3 @@
#!/bin/sh
cp "$BINARIES_DIR"/Image "$TARGET_DIR"/boot
cp "$BINARIES_DIR"/ae350_ax45mp.dtb "$TARGET_DIR"/boot

View File

@@ -0,0 +1,106 @@
Intro
=====
Andestech AE350 Platform
The AE350 prototype demonstrates the AE350 platform on the FPGA.
How to build it
===============
Configure Buildroot
-------------------
$ make andes_ae350_45_defconfig
If you want to customize your configuration:
$ make menuconfig
Build everything
----------------
Note: you will need to access to the network, since Buildroot will
download the packages' sources.
$ make
Result of the build
-------------------
After building, you should obtain the following files:
output/images/
|-- ae350_ax45mp.dtb
|-- boot.vfat
|-- fw_dynamic.bin
|-- fw_dynamic.elf
|-- Image
|-- rootfs.ext2
|-- rootfs.ext4 -> rootfs.ext2
|-- sdcard.img
|-- u-boot-spl.bin
`-- u-boot.itb
How to update the bootloader and device-tree
============================================
To update the bootloader and device tree, make sure you have
an ICEman (Andes OpenOCD [1]) and AICE [2] connection set up
as below:
Local Host Local/Remote Host
.-----------------. .--------------.
| buildroot images| | |
| | ICEman host <IP:PORT>
| .----------. | | .--------. |
| | SPI_burn |<---+--socket--+->| ICEman | |
| '----------' | | '--.-----' |
'-----------------' '-----|--------'
|
USB
.--------------. |
| target | .-----v-----.
| board <----JTAG---| AICE |
| | '-----------'
'--------------'
[1] https://github.com/andestech/ICEman
[2] https://www.andestech.com/en/products-solutions/andeshape-platforms/aice-micro/
The Andes SPI_burn tool will be located in output/host/bin. Use
the following commands to update the bootloader and device tree:
$ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x0 -i u-boot-spl.bin
$ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x10000 -i u-boot.itb
$ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0xf0000 -i ae350_ax45mp.dtb
Note that the --addr option specifies the offset starting from
the flash base address 0x80000000 and set by U-Boot configurations.
e.g.
u-boot-spl.bin : CONFIG_SPL_TEXT_BASE=0x80000000
u-boot.itb : CONFIG_SPL_LOAD_FIT_ADDRESS=0x80010000
ae350_ax45mp.dtb: CONFIG_SYS_FDT_BASE=0x800f0000
How to write the SD card
========================
Copy the sdcard.img to a SD card with "dd":
$ sudo dd if=sdcard.img of=/dev/sdX bs=4096
$ sudo sync
Your SD card partition should be:
Disk /dev/sdb: 14.48 GiB, 15552479232 bytes, 30375936 sectors
Disk model: Multi-Card
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 1 4096 4096 2M c W95 FAT32 (LBA)
/dev/sdb2 * 4097 126976 122880 60M 83 Linux
Insert SD card and reset the board, it should boot Linux from mmc.

View File

@@ -0,0 +1,4 @@
label linux
kernel /boot/Image
fdt /boot/ae350_ax45mp.dtb
append earlycon=sbi root=/dev/mmcblk0p2 rootwait

View File

@@ -0,0 +1,6 @@
CONFIG_SPL_FS_FAT=y
CONFIG_SPL_MMC=y
CONFIG_SPL_OPENSBI_LOAD_ADDR=0x0
CONFIG_SPL_OPENSBI_SCRATCH_OPTIONS=0x0
CONFIG_DISPLAY_CPUINFO=y
CONFIG_DISPLAY_BOARDINFO=y

View File

@@ -1 +0,0 @@
CONFIG_NDS32_BUILTIN_DTB="ae3xx"

View File

@@ -1,28 +0,0 @@
From 90d52d180dcc5d1300dc352ca709eb6453894143 Mon Sep 17 00:00:00 2001
From: Nylon Chen <nylon7@andestech.com>
Date: Wed, 28 Nov 2018 16:26:46 +0800
Subject: [PATCH] nds32: Fix boot messages garbled
In order to display uart correctly we have to pass the correct setting of uart to kernel by bootarg.
This patch will provide such settings to set the correct uart baud rate.
Signed-off-by: Nylon Chen <nylon7@andestech.com>
---
arch/nds32/boot/dts/ae3xx.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/nds32/boot/dts/ae3xx.dts b/arch/nds32/boot/dts/ae3xx.dts
index bb39749a6673..aefe2090926a 100644
--- a/arch/nds32/boot/dts/ae3xx.dts
+++ b/arch/nds32/boot/dts/ae3xx.dts
@@ -6,6 +6,7 @@
interrupt-parent = <&intc>;
chosen {
+ bootargs = "memblock=debug earlycon console=ttyS0,38400n8 debug loglevel=7";
stdout-path = &serial0;
};
--
2.18.0

View File

@@ -1,49 +0,0 @@
Intro
=====
Andestech(nds32) AE3XX Platform
The AE3XX prototype demonstrates the AE3XX example platform on the FPGA.
It is composed of one Andestech(nds32) processor and AE3XX.
How to build it
===============
Configure Buildroot
-------------------
The andes_ae3xx_defconfig configuration is a sample configuration with
all that is required to bring the FPGA Development Board:
$ make andes_ae3xx_defconfig
Build everything
----------------
Note: you will need to have access to the network, since Buildroot will
download the packages' sources.
$ make
Result of the build
-------------------
After building, you should obtain this tree:
output/images/
+-- vmlinux
+-- rootfs.cpio
+-- rootfs.tar
How to run it
=============
Run
---
Setup the Console with the rate 38400/8-N-1.
$ cd output/images
$ ../host/bin/nds32le-linux-gdb vmlinux
$ target remote [your host]
$ lo
$ c

View File

@@ -1,5 +1,4 @@
#!/bin/sh
mkdir -p ${TARGET_DIR}/lib/firmware
cp -f ${BUILD_DIR}/linux-custom/firmware/ppfe/* ${TARGET_DIR}/lib/firmware/
cp -f ${BUILD_DIR}/linux-custom/br2-ucls1012a.its ${BINARIES_DIR}/

View File

@@ -24,13 +24,13 @@ After building, you should obtain this tree:
output/images/
+-- arc-ucls1012a.dtb
+-- Image
+-- Image.gz
+-- part0-000000.itb
+-- rootfs.cpio
+-- rootfs.cpio.gz
+-- rootfs.tar
+-- u-boot.bin
+-- ucls1012a.its
+-- br2-ucls1012a.its
Flashing
--------

View File

@@ -1,14 +0,0 @@
#!/bin/sh
#
case "$1" in
start)
modprobe pfe
;;
stop)
;;
restart|reload)
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# From https://cdn.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
sha256 3507dd105b0a0e1101bd43d294472fccf853429a259a5fa7c67467bba318f8e9 linux-6.15.7.tar.xz

View File

@@ -1,16 +1,39 @@
Introduction
============
This is the support for the ARM Foundation v8 machine emulated by the
ARM software simulator of the AArch64 architecture.
First, one has to download the AArch64 software simulator from:
Building
========
https://silver.arm.com/download/download.tm?pv=4807186
$ make arm_foundationv8_defconfig
$ make
Then, use the arm_foundationv8_defconfig configuration to build your
Buildroot system.
Generated files under output/images:
* linux-system.axf: An image comprising the boot-wrapper-aarch64 minimal
firmware and bootloader, a Devicetree and the Linux kernel.
* rootfs.ext2: The OS root filesystem.
Running on the simulator
========================
Download the AArch64 software simulator from one of the following sources,
corresponding to your host computer:
- https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Architecture/FM-11.29/Foundation_Platform_11.29_27_Linux64.tgz
- https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Architecture/FM-11.29/Foundation_Platform_11.29_27_Linux64_armv8l.tgz
The model will be located under one of the corresponding folders:
- Foundation_Platformpkg/models/Linux64_GCC-9.3
- Foundation_Platformpkg/models/Linux64_armv8l_GCC-9.3
Finally, boot your system with:
${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-6.4/Foundation_Platform \
Foundation_Platform \
--arm-v8.0 \
--image output/images/linux-system.axf \
--block-device output/images/rootfs.ext2 \
--network=nat \

View File

@@ -0,0 +1,15 @@
# Arm A-Profile Base RevC AEM FVP config
bp.secure_memory=1
bp.ve_sysregs.exit_on_shutdown=1
cache_state_modelled=0
cluster0.NUM_CORES=4
cluster0.cpu0.enable_crc32=1
cluster0.cpu1.enable_crc32=1
cluster0.cpu2.enable_crc32=1
cluster0.cpu3.enable_crc32=1
cluster1.NUM_CORES=4
cluster1.cpu0.enable_crc32=1
cluster1.cpu1.enable_crc32=1
cluster1.cpu2.enable_crc32=1
cluster1.cpu3.enable_crc32=1
pctl.startup=0.0.0.0

View File

@@ -0,0 +1,18 @@
/*
* Copyright (c) 2024, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "fvp-base-gicv3-psci-1t.dts"
/* The TF-A Devicetree does not have the OP-TEE node; let's add it. */
/ {
firmware {
optee {
compatible = "linaro,optee-tz";
method = "smc";
};
};
};

View File

@@ -0,0 +1,31 @@
image efi-part.vfat {
vfat {
file EFI {
image = "efi-part/EFI"
}
file Image {
image = "Image"
}
}
size = 128M
}
image disk.img {
hdimage {
partition-table-type = "gpt"
}
partition boot {
image = "efi-part.vfat"
partition-type-uuid = U
offset = 32K
bootable = true
}
partition root {
partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1,6 @@
set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /Image root=PARTLABEL=root rootwait
}

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 c0f23ccc71c49989e9ad238acf334473c17b7c88f79a20c829c3d443e3794a22 arm-trusted-firmware-v2.11-git4.tar.gz

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# From https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
sha256 524858852f5869a9ef17de8b1e6e7faf05bcb2c462bc96b3c24dbf82ede373cf linux-6.10.12.tar.xz

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 f591da9ab90ef3d6b3d173766d0ddff90c4ed7330680897486117df390d83c8f u-boot-2024.07.tar.bz2

View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -eu
BOARD_DIR=$(dirname "$0")
# Override the default GRUB configuration file with our own.
cp -f "${BOARD_DIR}/grub.cfg" "${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg"

View File

@@ -0,0 +1,73 @@
Introduction
============
The arm_fvp_ebbr_defconfig is meant to illustrate some aspects of the Arm EBBR
specification[1] and the Arm SystemReady IR[2] compliance program.
It allows building an AArch64 U-Boot based firmware implementing the subset of
UEFI defined by EBBR, as well as a Linux OS disk image booting with UEFI, to run
on the Arm A-Profile Base RevC AEM FVP.
Building
========
$ make arm_fvp_ebbr_defconfig
$ make
Generated files under output/images:
* bl1.bin: A ROM image built from TF-A.
* fip.bin: A firmware image comprising TF-A, OP-TEE and the U-Boot bootloader.
* disk.img: An OS disk image comprising the GRUB bootloader, the Linux kernel
and the root filesystem.
Running on the FVP
==================
Download the FVP from one of the following sources, corresponding to your host
computer:
- https://developer.arm.com/-/cdn-downloads/permalink/Fixed-Virtual-Platforms/FM-11.27/FVP_Base_RevC-2xAEMvA_11.27_19_Linux64.tgz
- https://developer.arm.com/-/cdn-downloads/permalink/Fixed-Virtual-Platforms/FM-11.27/FVP_Base_RevC-2xAEMvA_11.27_19_Linux64_armv8l.tgz
The FVP will be located under one of the corresponding folders:
- Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3
- Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3
Run the simulation with:
FVP_Base_RevC-2xAEMvA \
--config-file board/arm/fvp-ebbr/fvp-config.txt \
-C bp.secureflashloader.fname="output/images/bl1.bin" \
-C bp.flashloader0.fname="output/images/fip.bin" \
-C bp.virtioblockdevice.image_path="output/images/disk.img"
The login prompt will appear in a new X terminal.
Using the EBBR firmware to run another OS on the FVP
----------------------------------------------------
It is possible to use the generated firmware binaries to run another OS
supporting the EBBR specification.
To run another OS on simulation using a live or pre-installed image, use the
same FVP command line as for the generated OS but adapt the OS image path in the
virtioblockdevice stanza.
The image generated by the aarch64_efi_defconfig or the Arm ACS-IR images[3] are
examples of pre-installed OS images.
Linux distributions such as Debian, Fedora, openSUSE or Ubuntu provide a
pre-installed OS image.
Miscellaneous
=============
This configuration is inspired by the arm_foundationv8_defconfig, the
qemu_aarch64_virt_defconfig and the Arm SystemReady IR IoT Integration, Test,
and Certification Guide[4].
Firmware update, MMC and network are currently not supported.
[1]: https://github.com/ARM-software/ebbr
[2]: https://developer.arm.com/Architectures/Arm%20SystemReady%20IR
[3]: https://github.com/ARM-software/arm-systemready/tree/main/IR/prebuilt_images
[4]: https://developer.arm.com/documentation/DUI1101/latest/

View File

@@ -0,0 +1,49 @@
# CONFIG_USE_BOOTCOMMAND is not set
CONFIG_BOOTCOMMAND="bootflow scan -lb"
CONFIG_BOOTMETH_DISTRO=y
CONFIG_BOOTM_EFI=y
CONFIG_BOOTSTD_BOOTCOMMAND=y
CONFIG_BOOTSTD_DEFAULTS=y
CONFIG_BOOTSTD_FULL=y
CONFIG_CMD_BOOTDEV=y
CONFIG_CMD_BOOTEFI=y
CONFIG_CMD_BOOTEFI_HELLO=y
CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_BOOTMETH=y
CONFIG_CMD_DM=y
CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_EFI_VARIABLE_FILE_STORE=y
CONFIG_CMD_GETTIME=y
CONFIG_CMD_GPT=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_RNG=y
CONFIG_CMD_RTC=y
CONFIG_CMD_TIME=y
CONFIG_DM_RNG=y
CONFIG_DM_RTC=y
CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
CONFIG_EFI_GET_TIME=y
CONFIG_EFI_HAVE_RUNTIME_RESET=y
CONFIG_EFI_LOADER=y
CONFIG_EFI_LOADER_HII=y
CONFIG_EFI_MM_COMM_TEE=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SECURE_BOOT=y
CONFIG_EFI_SET_TIME=y
CONFIG_EFI_UNICODE_CAPITALIZATION=y
CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
CONFIG_EFI_VARIABLE_FILE_STORE=y
CONFIG_FAT_WRITE=y
CONFIG_FIT=y
CONFIG_FS_FAT=y
CONFIG_ISO_PARTITION=y
CONFIG_MISC=y
CONFIG_OF_CONTROL=y
CONFIG_OF_LIBFDT=y
CONFIG_OPTEE=y
CONFIG_PARTITION_TYPE_GUID=y
CONFIG_RNG_OPTEE=y
CONFIG_TEE=y
CONFIG_USE_BOOTCOMMAND=y
CONFIG_VEXPRESS_CONFIG=y

View File

@@ -1,169 +0,0 @@
CONFIG_SMP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_AUDIT=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_KMEM=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PROFILING=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_HOTPLUG_PCI=y
CONFIG_NR_CPUS=6
CONFIG_PREEMPT=y
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_CMA=y
CONFIG_CMDLINE="console=ttyAMA0"
CONFIG_COMPAT=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
CONFIG_ARM_DT_BL_CPUFREQ=y
CONFIG_ARM_SCPI_CPUFREQ=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_BPF_JIT=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_XGENE=y
CONFIG_PATA_PLATFORM=y
CONFIG_PATA_OF_PLATFORM=y
CONFIG_NETDEVICES=y
CONFIG_TUN=y
CONFIG_SKY2=y
CONFIG_SMC91X=y
CONFIG_SMSC911X=y
CONFIG_INPUT_EVDEV=y
CONFIG_SERIO_AMBAKMI=y
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_SLAVE=y
CONFIG_SPI=y
CONFIG_SPI_PL022=y
CONFIG_PTP_1588_CLOCK=m
CONFIG_GPIO_PL061=y
CONFIG_GPIO_XGENE=y
CONFIG_POWER_RESET_XGENE=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_DRM=y
CONFIG_DRM_I2C_NXP_TDA998X=y
CONFIG_DRM_ARM=y
CONFIG_DRM_HDLCD=y
CONFIG_DRM_VIRTUAL_HDLCD=y
CONFIG_FB_ARMCLCD=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_ISP1760=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_ULPI=y
CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SPI=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_PL030=y
CONFIG_RTC_DRV_PL031=y
CONFIG_DMADEVICES=y
CONFIG_PL330_DMA=y
CONFIG_COMMON_CLK_SCPI=y
CONFIG_ARM_TIMER_SP804=y
CONFIG_MAILBOX=y
CONFIG_ARM_MHU=y
CONFIG_PHY_XGENE=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=y
CONFIG_CUSE=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
CONFIG_EFIVAR_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOCKUP_DETECTOR=y
CONFIG_SECURITY=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_ARM64_CRYPTO=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_SIMPLE_CARD=y
CONFIG_SND_DESIGNWARE_I2S=y
CONFIG_CMA=y
CONFIG_CMA_SIZE_MBYTES=64

View File

@@ -1,134 +0,0 @@
ARM Juno r1/r0
Intro
=====
These instructions apply to all models of the ARM Juno:
- Juno r0 (does not support PCIe)
- Juno r1 (supports PCIe)
- Juno r2 (Big Cluster with A72)
Buildroot will generate the kernel image, device tree blob, bootloader binaries
and a minimal root filesystem.
How to build it
===============
Configure Buildroot
-------------------
Configuring Buildroot is pretty simple, just execute:
$ make arm_juno_defconfig
Build the rootfs, kernel and DTB
--------------------------------
Note: you will need to have access to the network, since Buildroot will
download the packages' sources.
You may now build your rootfs with:
$ make
(This may take a while)
Result of the build
-------------------
After building, you should obtain this tree:
output/images/
+-- rootfs.tar
+-- juno.dtb (if Juno r0 is used)
+-- juno-r1.dtb (if Juno r1 is used)
+-- juno-r2.dtb (if Juno r2 is used)
+-- Image
+-- bl1.bin
+-- bl2.bin
+-- bl2u.bin
+-- bl31.bin
+-- fip.bin
+-- scp-fw.bin
+-- u-boot.bin
Preparing your rootfs
======================
Format your pen drive as a ext3 filesystem by executing:
$ mkfs.ext3 /dev/<your device>
Preparing your rootfs
======================
Format your pen drive as a ext3 filesystem by executing:
$ mkfs.ext3 /dev/<your device>
Installing your rootfs
======================
After mounting the pen drive please execute the following:
$ sudo tar -xvf output/images/rootfs.tar -C <pen drive mount path>
When completed make sure to unmount the device:
$ umount <pen drive mount path>
Insert the pen drive in one of the ARM Juno' USB type A connectors.
Configure *.dtb in the boot configuration for Juno r0
=====================================================
SITE1/HBI0262B/images.txt
.....
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x00C00000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify Image name to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
......
Configure *.dtb in the boot configuration for Juno r1
=====================================================
SITE1/HBI0262C/images.txt
......
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x00C00000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno-r1.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
......
Configure *.dtb in the boot configuration for Juno r2
=====================================================
SITE1/HBI0262D/images.txt
......
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02000000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno-r2.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
......
Installing kernel image and DTB
===============================
1. Connect to the ARM Juno UART0 and execute USB_ON in the terminal
2. Connect a USB cable between your PC and ARM Juno USB type B connector
A mass storage device should appear in your desktop.
3. Open the software/ folder
4. Copy the 'Image' file to software/
5. Copy the 'juno-r1.dtb' (r1), 'juno.dtb' (r0) or juno-r2.dtb (r2) file to software/
6. Copy the bootloader binaries (bl1.bin and fip.bin) to software/
7. Press the red button in the front pannel of ARM Juno
At this time, the board will erase the Flash entry for each new item and
replace it with the lastest ones.

View File

@@ -0,0 +1,227 @@
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_PROFILING=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MXC=y
CONFIG_AEABI=y
CONFIG_PM_DEBUG=y
CONFIG_OPROFILE=m
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_MACH_IMX27_DT=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=y
CONFIG_CAN=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_MCP251X=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
# CONFIG_MTD_CFI_I2 is not set
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_MXC=y
CONFIG_MTD_UBI=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_FARADAY is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_SMSC_PHY=y
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_SDIO=m
CONFIG_RT2X00=m
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RTL8187=m
CONFIG_RTL8192CU=m
CONFIG_ZD1211RW=m
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_IMX=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_TSC2102=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
CONFIG_W1=y
CONFIG_W1_MASTER_MXC=y
CONFIG_W1_SLAVE_THERM=y
CONFIG_WATCHDOG=y
CONFIG_IMX2_WDT=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_PWC=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=m
CONFIG_VIDEO_MX2=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CODA=m
CONFIG_VIDEO_MX2_EMMAPRP=m
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
CONFIG_SOC_CAMERA_MT9M111=m
# CONFIG_DVB_AU8522_V4L is not set
# CONFIG_DVB_TUNER_DIB0070 is not set
# CONFIG_DVB_TUNER_DIB0090 is not set
CONFIG_FB=y
CONFIG_FB_IMX=y
CONFIG_LCD_L4F00242T03=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
CONFIG_SND_IMX_SOC=m
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MXC=y
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA_DEBUG=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_FSL_USB2=y
CONFIG_USB_ETH=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_HID=m
CONFIG_MMC=y
CONFIG_MMC_MXC=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_MXC=m
CONFIG_DMADEVICES=y
CONFIG_IMX_DMA=y
CONFIG_IMX_SDMA=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_IIO=y
CONFIG_MAX1027=y
CONFIG_PWM=y
CONFIG_PWM_IMX=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_DNOTIFY is not set
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_FTRACE is not set
CONFIG_DEBUG_LL=y
CONFIG_EARLY_PRINTK=y

View File

@@ -0,0 +1,278 @@
CONFIG_EXPERIMENTAL=y
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_MXC=y
CONFIG_MXC_IRQ_PRIOR=y
CONFIG_SOC_IMX51=y
CONFIG_ARM_THUMBEE=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_IMX=y
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_NEON=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SUSPEND is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=y
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_MCP251X=m
CONFIG_BT=m
CONFIG_BT_L2CAP=y
CONFIG_BT_SCO=y
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_MAC80211_RC_PID=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_LOADER=m
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_MXC=y
CONFIG_MTD_UBI=y
CONFIG_MISC_DEVICES=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_SMSC_PHY=y
CONFIG_NET_ETHERNET=y
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
CONFIG_RTL8187=m
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_SDIO=m
CONFIG_RT2X00=m
CONFIG_RT73USB=m
CONFIG_ZD1211RW=m
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=m
CONFIG_KEYBOARD_IMX=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_WM831X=y
CONFIG_TOUCHSCREEN_MC13XXX=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_INPUT_UINPUT=m
CONFIG_INPUT_WM831X_ON=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_WM831X=m
CONFIG_POWER_SUPPLY=y
CONFIG_WM831X_BACKUP=m
CONFIG_WM831X_POWER=m
CONFIG_HWMON=m
CONFIG_SENSORS_AS1531=m
CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_WM831X=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_WM831X_WATCHDOG=m
CONFIG_IMX2_WDT=y
CONFIG_MFD_MC13XXX_I2C=y
CONFIG_MFD_WM831X_I2C=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_MC13892=m
CONFIG_IMX_IPUV3_CORE=y
CONFIG_DRM=y
CONFIG_MFD_IMX_IPU_V3=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_VIDEO_DEV=m
# CONFIG_RC_CORE is not set
# CONFIG_MEDIA_TUNER_SIMPLE is not set
# CONFIG_MEDIA_TUNER_TDA8290 is not set
# CONFIG_MEDIA_TUNER_TDA827X is not set
# CONFIG_MEDIA_TUNER_TDA18271 is not set
# CONFIG_MEDIA_TUNER_TDA9887 is not set
# CONFIG_MEDIA_TUNER_TEA5761 is not set
# CONFIG_MEDIA_TUNER_TEA5767 is not set
# CONFIG_MEDIA_TUNER_MT20XX is not set
# CONFIG_MEDIA_TUNER_MT2060 is not set
# CONFIG_MEDIA_TUNER_MT2266 is not set
# CONFIG_MEDIA_TUNER_MT2131 is not set
# CONFIG_MEDIA_TUNER_QT1010 is not set
# CONFIG_MEDIA_TUNER_XC2028 is not set
# CONFIG_MEDIA_TUNER_XC5000 is not set
# CONFIG_MEDIA_TUNER_MXL5005S is not set
# CONFIG_MEDIA_TUNER_MXL5007T is not set
# CONFIG_MEDIA_TUNER_MC44S803 is not set
# CONFIG_MEDIA_TUNER_MAX2165 is not set
# CONFIG_MEDIA_TUNER_TDA18218 is not set
CONFIG_VIDEO_VIVI=m
CONFIG_USB_VIDEO_CLASS=m
# CONFIG_RADIO_ADAPTERS is not set
CONFIG_FB=y
CONFIG_FB_MX5=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=m
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
CONFIG_SND=m
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
CONFIG_SND_IMX_SOC=m
CONFIG_SND_SOC_APF51_DEV_WM8960=m
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_SUSPEND=y
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_MON=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MXC=y
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_WDM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_GPIO_VBUS=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_ETH=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_USB_CDC_COMPOSITE=m
CONFIG_USB_G_MULTI=m
CONFIG_USB_G_MULTI_CDC=y
CONFIG_USB_G_HID=m
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MMC_SPI=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_WM831X_STATUS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_MXC=y
CONFIG_RTC_DRV_WM831X=y
CONFIG_RTC_DRV_MC13XXX=m
CONFIG_STAGING=y
CONFIG_DRM_IMX=y
CONFIG_DRM_IMX_FB_HELPER=y
CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
CONFIG_DRM_IMX_TVE=y
CONFIG_DRM_IMX_IPUV3=y
CONFIG_IIO=m
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_DEBUG_FS=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set

View File

@@ -0,0 +1 @@
../linux/linux.hash

Some files were not shown because too many files have changed in this diff Show More