Sort and wash beans; place in a large Dutch oven. Cover with water 2 inches above beans; let soak overnight. Drain well.
Place beans and ham bone in Dutch oven. Add 2 quarts water; bring to a boil. Reduce heat; cover and simmer 2 hours. Stir in cabbage, red pepper, and salt. Cover and simmer 1 hour. Remove ham bone; discard.
Sauté onion in drippings in a medium skillet until tender. Add to soup, stirring well. Combine olive oil and garlic powder in a small bowl. Stir into soup.